@strkfarm/sdk 1.0.54 → 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 +2065 -1
- package/dist/index.browser.mjs +2068 -1
- package/dist/index.d.ts +44 -4
- package/dist/index.js +2180 -109
- package/dist/index.mjs +2069 -1
- package/package.json +3 -3
- package/src/data/sensei.abi.json +1759 -0
- package/src/interfaces/common.tsx +5 -2
- package/src/strategies/base-strategy.ts +27 -0
- package/src/strategies/index.ts +1 -0
- package/src/strategies/sensei.ts +333 -0
- package/src/utils/index.ts +4 -0
package/dist/index.mjs
CHANGED
|
@@ -1948,6 +1948,9 @@ function assert(condition, message) {
|
|
|
1948
1948
|
throw new Error(message);
|
|
1949
1949
|
}
|
|
1950
1950
|
}
|
|
1951
|
+
function getTrovesEndpoint() {
|
|
1952
|
+
return process.env.TROVES_ENDPOINT || "https://app.troves.fi";
|
|
1953
|
+
}
|
|
1951
1954
|
|
|
1952
1955
|
// src/modules/avnu.ts
|
|
1953
1956
|
var AvnuWrapper = class _AvnuWrapper {
|
|
@@ -2039,6 +2042,7 @@ var RiskType = /* @__PURE__ */ ((RiskType2) => {
|
|
|
2039
2042
|
RiskType2["ORACLE_RISK"] = "Oracle Risk";
|
|
2040
2043
|
RiskType2["TECHNICAL_RISK"] = "Technical Risk";
|
|
2041
2044
|
RiskType2["COUNTERPARTY_RISK"] = "Counterparty Risk";
|
|
2045
|
+
RiskType2["DEPEG_RISK"] = "Depeg Risk";
|
|
2042
2046
|
return RiskType2;
|
|
2043
2047
|
})(RiskType || {});
|
|
2044
2048
|
var Network = /* @__PURE__ */ ((Network2) => {
|
|
@@ -2053,7 +2057,7 @@ var FlowChartColors = /* @__PURE__ */ ((FlowChartColors2) => {
|
|
|
2053
2057
|
FlowChartColors2["Purple"] = "#6e53dc";
|
|
2054
2058
|
return FlowChartColors2;
|
|
2055
2059
|
})(FlowChartColors || {});
|
|
2056
|
-
function getMainnetConfig(rpcUrl
|
|
2060
|
+
function getMainnetConfig(rpcUrl, blockIdentifier = "pending") {
|
|
2057
2061
|
return {
|
|
2058
2062
|
provider: new RpcProvider2({
|
|
2059
2063
|
nodeUrl: rpcUrl,
|
|
@@ -2081,6 +2085,8 @@ var getRiskExplaination = (riskType) => {
|
|
|
2081
2085
|
return "The risk of technical issues e.g. backend failure.";
|
|
2082
2086
|
case "Counterparty Risk" /* COUNTERPARTY_RISK */:
|
|
2083
2087
|
return "The risk of the counterparty defaulting e.g. bad debt on lending platforms.";
|
|
2088
|
+
case "Depeg Risk" /* DEPEG_RISK */:
|
|
2089
|
+
return "The risk of a token losing its peg to the underlying asset, leading to potential losses for holders.";
|
|
2084
2090
|
}
|
|
2085
2091
|
};
|
|
2086
2092
|
var getRiskColor = (risk) => {
|
|
@@ -3669,6 +3675,7 @@ var vesu_rebalance_abi_default = [
|
|
|
3669
3675
|
// src/strategies/base-strategy.ts
|
|
3670
3676
|
var BaseStrategy = class {
|
|
3671
3677
|
constructor(config) {
|
|
3678
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
3672
3679
|
this.config = config;
|
|
3673
3680
|
}
|
|
3674
3681
|
async getUserTVL(user) {
|
|
@@ -3683,6 +3690,23 @@ var BaseStrategy = class {
|
|
|
3683
3690
|
async withdrawCall(amountInfo, receiver, owner) {
|
|
3684
3691
|
throw new Error("Not implemented");
|
|
3685
3692
|
}
|
|
3693
|
+
setCache(key, data, ttl = 6e4) {
|
|
3694
|
+
const timestamp = Date.now();
|
|
3695
|
+
this.cache.set(key, { timestamp, ttl, data });
|
|
3696
|
+
}
|
|
3697
|
+
getCache(key) {
|
|
3698
|
+
const cachedData = this.cache.get(key);
|
|
3699
|
+
if (!cachedData || !this.isCacheValid(key)) {
|
|
3700
|
+
return null;
|
|
3701
|
+
}
|
|
3702
|
+
return cachedData.data;
|
|
3703
|
+
}
|
|
3704
|
+
isCacheValid(key) {
|
|
3705
|
+
const cachedData = this.cache.get(key);
|
|
3706
|
+
if (!cachedData) return false;
|
|
3707
|
+
const { timestamp, ttl } = cachedData;
|
|
3708
|
+
return Date.now() - timestamp <= ttl;
|
|
3709
|
+
}
|
|
3686
3710
|
};
|
|
3687
3711
|
|
|
3688
3712
|
// src/node/headless.browser.ts
|
|
@@ -16303,6 +16327,2047 @@ EkuboCLVaultStrategies.forEach((s) => {
|
|
|
16303
16327
|
];
|
|
16304
16328
|
});
|
|
16305
16329
|
|
|
16330
|
+
// src/strategies/sensei.ts
|
|
16331
|
+
import { Contract as Contract7, uint256 as uint2565 } from "starknet";
|
|
16332
|
+
|
|
16333
|
+
// src/data/sensei.abi.json
|
|
16334
|
+
var sensei_abi_default = [
|
|
16335
|
+
{
|
|
16336
|
+
type: "impl",
|
|
16337
|
+
name: "IStrategyCustomImpl",
|
|
16338
|
+
interface_name: "strkfarm::interfaces::ERC721Strategy::IStrategyCustom"
|
|
16339
|
+
},
|
|
16340
|
+
{
|
|
16341
|
+
type: "struct",
|
|
16342
|
+
name: "core::integer::u256",
|
|
16343
|
+
members: [
|
|
16344
|
+
{
|
|
16345
|
+
name: "low",
|
|
16346
|
+
type: "core::integer::u128"
|
|
16347
|
+
},
|
|
16348
|
+
{
|
|
16349
|
+
name: "high",
|
|
16350
|
+
type: "core::integer::u128"
|
|
16351
|
+
}
|
|
16352
|
+
]
|
|
16353
|
+
},
|
|
16354
|
+
{
|
|
16355
|
+
type: "struct",
|
|
16356
|
+
name: "strkfarm::interfaces::IEkuboDistributor::Claim",
|
|
16357
|
+
members: [
|
|
16358
|
+
{
|
|
16359
|
+
name: "id",
|
|
16360
|
+
type: "core::integer::u64"
|
|
16361
|
+
},
|
|
16362
|
+
{
|
|
16363
|
+
name: "claimee",
|
|
16364
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16365
|
+
},
|
|
16366
|
+
{
|
|
16367
|
+
name: "amount",
|
|
16368
|
+
type: "core::integer::u128"
|
|
16369
|
+
}
|
|
16370
|
+
]
|
|
16371
|
+
},
|
|
16372
|
+
{
|
|
16373
|
+
type: "struct",
|
|
16374
|
+
name: "core::array::Span::<core::felt252>",
|
|
16375
|
+
members: [
|
|
16376
|
+
{
|
|
16377
|
+
name: "snapshot",
|
|
16378
|
+
type: "@core::array::Array::<core::felt252>"
|
|
16379
|
+
}
|
|
16380
|
+
]
|
|
16381
|
+
},
|
|
16382
|
+
{
|
|
16383
|
+
type: "struct",
|
|
16384
|
+
name: "strkfarm::components::swap::Route",
|
|
16385
|
+
members: [
|
|
16386
|
+
{
|
|
16387
|
+
name: "token_from",
|
|
16388
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16389
|
+
},
|
|
16390
|
+
{
|
|
16391
|
+
name: "token_to",
|
|
16392
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16393
|
+
},
|
|
16394
|
+
{
|
|
16395
|
+
name: "exchange_address",
|
|
16396
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16397
|
+
},
|
|
16398
|
+
{
|
|
16399
|
+
name: "percent",
|
|
16400
|
+
type: "core::integer::u128"
|
|
16401
|
+
},
|
|
16402
|
+
{
|
|
16403
|
+
name: "additional_swap_params",
|
|
16404
|
+
type: "core::array::Array::<core::felt252>"
|
|
16405
|
+
}
|
|
16406
|
+
]
|
|
16407
|
+
},
|
|
16408
|
+
{
|
|
16409
|
+
type: "struct",
|
|
16410
|
+
name: "strkfarm::components::swap::AvnuMultiRouteSwap",
|
|
16411
|
+
members: [
|
|
16412
|
+
{
|
|
16413
|
+
name: "token_from_address",
|
|
16414
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16415
|
+
},
|
|
16416
|
+
{
|
|
16417
|
+
name: "token_from_amount",
|
|
16418
|
+
type: "core::integer::u256"
|
|
16419
|
+
},
|
|
16420
|
+
{
|
|
16421
|
+
name: "token_to_address",
|
|
16422
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16423
|
+
},
|
|
16424
|
+
{
|
|
16425
|
+
name: "token_to_amount",
|
|
16426
|
+
type: "core::integer::u256"
|
|
16427
|
+
},
|
|
16428
|
+
{
|
|
16429
|
+
name: "token_to_min_amount",
|
|
16430
|
+
type: "core::integer::u256"
|
|
16431
|
+
},
|
|
16432
|
+
{
|
|
16433
|
+
name: "beneficiary",
|
|
16434
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16435
|
+
},
|
|
16436
|
+
{
|
|
16437
|
+
name: "integrator_fee_amount_bps",
|
|
16438
|
+
type: "core::integer::u128"
|
|
16439
|
+
},
|
|
16440
|
+
{
|
|
16441
|
+
name: "integrator_fee_recipient",
|
|
16442
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16443
|
+
},
|
|
16444
|
+
{
|
|
16445
|
+
name: "routes",
|
|
16446
|
+
type: "core::array::Array::<strkfarm::components::swap::Route>"
|
|
16447
|
+
}
|
|
16448
|
+
]
|
|
16449
|
+
},
|
|
16450
|
+
{
|
|
16451
|
+
type: "struct",
|
|
16452
|
+
name: "strkfarm::interfaces::ERC721Strategy::Position",
|
|
16453
|
+
members: [
|
|
16454
|
+
{
|
|
16455
|
+
name: "acc1_supply_shares",
|
|
16456
|
+
type: "core::integer::u256"
|
|
16457
|
+
},
|
|
16458
|
+
{
|
|
16459
|
+
name: "acc1_borrow_shares",
|
|
16460
|
+
type: "core::integer::u256"
|
|
16461
|
+
},
|
|
16462
|
+
{
|
|
16463
|
+
name: "acc2_supply_shares",
|
|
16464
|
+
type: "core::integer::u256"
|
|
16465
|
+
},
|
|
16466
|
+
{
|
|
16467
|
+
name: "acc2_borrow_shares",
|
|
16468
|
+
type: "core::integer::u256"
|
|
16469
|
+
}
|
|
16470
|
+
]
|
|
16471
|
+
},
|
|
16472
|
+
{
|
|
16473
|
+
type: "enum",
|
|
16474
|
+
name: "core::bool",
|
|
16475
|
+
variants: [
|
|
16476
|
+
{
|
|
16477
|
+
name: "False",
|
|
16478
|
+
type: "()"
|
|
16479
|
+
},
|
|
16480
|
+
{
|
|
16481
|
+
name: "True",
|
|
16482
|
+
type: "()"
|
|
16483
|
+
}
|
|
16484
|
+
]
|
|
16485
|
+
},
|
|
16486
|
+
{
|
|
16487
|
+
type: "struct",
|
|
16488
|
+
name: "strkfarm::interfaces::ERC721Strategy::PositionDescription",
|
|
16489
|
+
members: [
|
|
16490
|
+
{
|
|
16491
|
+
name: "estimated_size",
|
|
16492
|
+
type: "core::integer::u256"
|
|
16493
|
+
},
|
|
16494
|
+
{
|
|
16495
|
+
name: "deposit1",
|
|
16496
|
+
type: "core::integer::u256"
|
|
16497
|
+
},
|
|
16498
|
+
{
|
|
16499
|
+
name: "borrow1",
|
|
16500
|
+
type: "core::integer::u256"
|
|
16501
|
+
},
|
|
16502
|
+
{
|
|
16503
|
+
name: "deposit2",
|
|
16504
|
+
type: "core::integer::u256"
|
|
16505
|
+
},
|
|
16506
|
+
{
|
|
16507
|
+
name: "borrow2",
|
|
16508
|
+
type: "core::integer::u256"
|
|
16509
|
+
}
|
|
16510
|
+
]
|
|
16511
|
+
},
|
|
16512
|
+
{
|
|
16513
|
+
type: "struct",
|
|
16514
|
+
name: "strkfarm::interfaces::oracle::IPriceOracleDispatcher",
|
|
16515
|
+
members: [
|
|
16516
|
+
{
|
|
16517
|
+
name: "contract_address",
|
|
16518
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16519
|
+
}
|
|
16520
|
+
]
|
|
16521
|
+
},
|
|
16522
|
+
{
|
|
16523
|
+
type: "struct",
|
|
16524
|
+
name: "ekubo::interfaces::core::ICoreDispatcher",
|
|
16525
|
+
members: [
|
|
16526
|
+
{
|
|
16527
|
+
name: "contract_address",
|
|
16528
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16529
|
+
}
|
|
16530
|
+
]
|
|
16531
|
+
},
|
|
16532
|
+
{
|
|
16533
|
+
type: "struct",
|
|
16534
|
+
name: "strkfarm::components::ekuboSwap::IRouterDispatcher",
|
|
16535
|
+
members: [
|
|
16536
|
+
{
|
|
16537
|
+
name: "contract_address",
|
|
16538
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16539
|
+
}
|
|
16540
|
+
]
|
|
16541
|
+
},
|
|
16542
|
+
{
|
|
16543
|
+
type: "struct",
|
|
16544
|
+
name: "strkfarm::components::ekuboSwap::EkuboSwapStruct",
|
|
16545
|
+
members: [
|
|
16546
|
+
{
|
|
16547
|
+
name: "core",
|
|
16548
|
+
type: "ekubo::interfaces::core::ICoreDispatcher"
|
|
16549
|
+
},
|
|
16550
|
+
{
|
|
16551
|
+
name: "router",
|
|
16552
|
+
type: "strkfarm::components::ekuboSwap::IRouterDispatcher"
|
|
16553
|
+
}
|
|
16554
|
+
]
|
|
16555
|
+
},
|
|
16556
|
+
{
|
|
16557
|
+
type: "struct",
|
|
16558
|
+
name: "ekubo::types::keys::PoolKey",
|
|
16559
|
+
members: [
|
|
16560
|
+
{
|
|
16561
|
+
name: "token0",
|
|
16562
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16563
|
+
},
|
|
16564
|
+
{
|
|
16565
|
+
name: "token1",
|
|
16566
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16567
|
+
},
|
|
16568
|
+
{
|
|
16569
|
+
name: "fee",
|
|
16570
|
+
type: "core::integer::u128"
|
|
16571
|
+
},
|
|
16572
|
+
{
|
|
16573
|
+
name: "tick_spacing",
|
|
16574
|
+
type: "core::integer::u128"
|
|
16575
|
+
},
|
|
16576
|
+
{
|
|
16577
|
+
name: "extension",
|
|
16578
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16579
|
+
}
|
|
16580
|
+
]
|
|
16581
|
+
},
|
|
16582
|
+
{
|
|
16583
|
+
type: "struct",
|
|
16584
|
+
name: "ekubo::interfaces::router::RouteNode",
|
|
16585
|
+
members: [
|
|
16586
|
+
{
|
|
16587
|
+
name: "pool_key",
|
|
16588
|
+
type: "ekubo::types::keys::PoolKey"
|
|
16589
|
+
},
|
|
16590
|
+
{
|
|
16591
|
+
name: "sqrt_ratio_limit",
|
|
16592
|
+
type: "core::integer::u256"
|
|
16593
|
+
},
|
|
16594
|
+
{
|
|
16595
|
+
name: "skip_ahead",
|
|
16596
|
+
type: "core::integer::u128"
|
|
16597
|
+
}
|
|
16598
|
+
]
|
|
16599
|
+
},
|
|
16600
|
+
{
|
|
16601
|
+
type: "struct",
|
|
16602
|
+
name: "strkfarm::interfaces::ERC721Strategy::Settings",
|
|
16603
|
+
members: [
|
|
16604
|
+
{
|
|
16605
|
+
name: "base_fee_percent",
|
|
16606
|
+
type: "core::integer::u128"
|
|
16607
|
+
},
|
|
16608
|
+
{
|
|
16609
|
+
name: "reward_fee_percent",
|
|
16610
|
+
type: "core::integer::u128"
|
|
16611
|
+
},
|
|
16612
|
+
{
|
|
16613
|
+
name: "fee_receiver",
|
|
16614
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16615
|
+
},
|
|
16616
|
+
{
|
|
16617
|
+
name: "min_health_factor",
|
|
16618
|
+
type: "core::integer::u32"
|
|
16619
|
+
},
|
|
16620
|
+
{
|
|
16621
|
+
name: "target_health_factor",
|
|
16622
|
+
type: "core::integer::u32"
|
|
16623
|
+
},
|
|
16624
|
+
{
|
|
16625
|
+
name: "coefs_sum1",
|
|
16626
|
+
type: "core::integer::u128"
|
|
16627
|
+
},
|
|
16628
|
+
{
|
|
16629
|
+
name: "coefs_sum2",
|
|
16630
|
+
type: "core::integer::u128"
|
|
16631
|
+
},
|
|
16632
|
+
{
|
|
16633
|
+
name: "oracle",
|
|
16634
|
+
type: "strkfarm::interfaces::oracle::IPriceOracleDispatcher"
|
|
16635
|
+
},
|
|
16636
|
+
{
|
|
16637
|
+
name: "ekubo_swap",
|
|
16638
|
+
type: "strkfarm::components::ekuboSwap::EkuboSwapStruct"
|
|
16639
|
+
},
|
|
16640
|
+
{
|
|
16641
|
+
name: "swap_routes1",
|
|
16642
|
+
type: "core::array::Array::<ekubo::interfaces::router::RouteNode>"
|
|
16643
|
+
},
|
|
16644
|
+
{
|
|
16645
|
+
name: "swap_routes2",
|
|
16646
|
+
type: "core::array::Array::<ekubo::interfaces::router::RouteNode>"
|
|
16647
|
+
},
|
|
16648
|
+
{
|
|
16649
|
+
name: "additional_shares_action_id",
|
|
16650
|
+
type: "core::integer::u8"
|
|
16651
|
+
}
|
|
16652
|
+
]
|
|
16653
|
+
},
|
|
16654
|
+
{
|
|
16655
|
+
type: "interface",
|
|
16656
|
+
name: "strkfarm::interfaces::ERC721Strategy::IStrategyCustom",
|
|
16657
|
+
items: [
|
|
16658
|
+
{
|
|
16659
|
+
type: "function",
|
|
16660
|
+
name: "deposit",
|
|
16661
|
+
inputs: [
|
|
16662
|
+
{
|
|
16663
|
+
name: "amount",
|
|
16664
|
+
type: "core::integer::u256"
|
|
16665
|
+
},
|
|
16666
|
+
{
|
|
16667
|
+
name: "receiver",
|
|
16668
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16669
|
+
}
|
|
16670
|
+
],
|
|
16671
|
+
outputs: [
|
|
16672
|
+
{
|
|
16673
|
+
type: "core::integer::u256"
|
|
16674
|
+
}
|
|
16675
|
+
],
|
|
16676
|
+
state_mutability: "external"
|
|
16677
|
+
},
|
|
16678
|
+
{
|
|
16679
|
+
type: "function",
|
|
16680
|
+
name: "health_factors",
|
|
16681
|
+
inputs: [],
|
|
16682
|
+
outputs: [
|
|
16683
|
+
{
|
|
16684
|
+
type: "(core::integer::u32, core::integer::u32)"
|
|
16685
|
+
}
|
|
16686
|
+
],
|
|
16687
|
+
state_mutability: "view"
|
|
16688
|
+
},
|
|
16689
|
+
{
|
|
16690
|
+
type: "function",
|
|
16691
|
+
name: "harvest",
|
|
16692
|
+
inputs: [
|
|
16693
|
+
{
|
|
16694
|
+
name: "protocol1_rewards_contract",
|
|
16695
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16696
|
+
},
|
|
16697
|
+
{
|
|
16698
|
+
name: "claim1",
|
|
16699
|
+
type: "strkfarm::interfaces::IEkuboDistributor::Claim"
|
|
16700
|
+
},
|
|
16701
|
+
{
|
|
16702
|
+
name: "proof1",
|
|
16703
|
+
type: "core::array::Span::<core::felt252>"
|
|
16704
|
+
},
|
|
16705
|
+
{
|
|
16706
|
+
name: "protocol2_rewards_contract",
|
|
16707
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16708
|
+
},
|
|
16709
|
+
{
|
|
16710
|
+
name: "claim2",
|
|
16711
|
+
type: "strkfarm::interfaces::IEkuboDistributor::Claim"
|
|
16712
|
+
},
|
|
16713
|
+
{
|
|
16714
|
+
name: "proof2",
|
|
16715
|
+
type: "core::array::Span::<core::felt252>"
|
|
16716
|
+
},
|
|
16717
|
+
{
|
|
16718
|
+
name: "swapInfo",
|
|
16719
|
+
type: "strkfarm::components::swap::AvnuMultiRouteSwap"
|
|
16720
|
+
}
|
|
16721
|
+
],
|
|
16722
|
+
outputs: [],
|
|
16723
|
+
state_mutability: "external"
|
|
16724
|
+
},
|
|
16725
|
+
{
|
|
16726
|
+
type: "function",
|
|
16727
|
+
name: "withdraw",
|
|
16728
|
+
inputs: [
|
|
16729
|
+
{
|
|
16730
|
+
name: "amount",
|
|
16731
|
+
type: "core::integer::u256"
|
|
16732
|
+
},
|
|
16733
|
+
{
|
|
16734
|
+
name: "receiver",
|
|
16735
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16736
|
+
},
|
|
16737
|
+
{
|
|
16738
|
+
name: "max_slippage_bps",
|
|
16739
|
+
type: "core::integer::u32"
|
|
16740
|
+
}
|
|
16741
|
+
],
|
|
16742
|
+
outputs: [],
|
|
16743
|
+
state_mutability: "external"
|
|
16744
|
+
},
|
|
16745
|
+
{
|
|
16746
|
+
type: "function",
|
|
16747
|
+
name: "get_all_shares",
|
|
16748
|
+
inputs: [],
|
|
16749
|
+
outputs: [
|
|
16750
|
+
{
|
|
16751
|
+
type: "strkfarm::interfaces::ERC721Strategy::Position"
|
|
16752
|
+
}
|
|
16753
|
+
],
|
|
16754
|
+
state_mutability: "view"
|
|
16755
|
+
},
|
|
16756
|
+
{
|
|
16757
|
+
type: "function",
|
|
16758
|
+
name: "rebalance",
|
|
16759
|
+
inputs: [
|
|
16760
|
+
{
|
|
16761
|
+
name: "amount",
|
|
16762
|
+
type: "core::integer::u256"
|
|
16763
|
+
},
|
|
16764
|
+
{
|
|
16765
|
+
name: "shouldRepay",
|
|
16766
|
+
type: "core::bool"
|
|
16767
|
+
}
|
|
16768
|
+
],
|
|
16769
|
+
outputs: [],
|
|
16770
|
+
state_mutability: "external"
|
|
16771
|
+
},
|
|
16772
|
+
{
|
|
16773
|
+
type: "function",
|
|
16774
|
+
name: "describe_position",
|
|
16775
|
+
inputs: [
|
|
16776
|
+
{
|
|
16777
|
+
name: "token_id",
|
|
16778
|
+
type: "core::felt252"
|
|
16779
|
+
}
|
|
16780
|
+
],
|
|
16781
|
+
outputs: [
|
|
16782
|
+
{
|
|
16783
|
+
type: "(strkfarm::interfaces::ERC721Strategy::Position, strkfarm::interfaces::ERC721Strategy::PositionDescription)"
|
|
16784
|
+
}
|
|
16785
|
+
],
|
|
16786
|
+
state_mutability: "view"
|
|
16787
|
+
},
|
|
16788
|
+
{
|
|
16789
|
+
type: "function",
|
|
16790
|
+
name: "set_settings",
|
|
16791
|
+
inputs: [
|
|
16792
|
+
{
|
|
16793
|
+
name: "settings",
|
|
16794
|
+
type: "strkfarm::interfaces::ERC721Strategy::Settings"
|
|
16795
|
+
}
|
|
16796
|
+
],
|
|
16797
|
+
outputs: [],
|
|
16798
|
+
state_mutability: "external"
|
|
16799
|
+
},
|
|
16800
|
+
{
|
|
16801
|
+
type: "function",
|
|
16802
|
+
name: "initialize",
|
|
16803
|
+
inputs: [],
|
|
16804
|
+
outputs: [],
|
|
16805
|
+
state_mutability: "external"
|
|
16806
|
+
}
|
|
16807
|
+
]
|
|
16808
|
+
},
|
|
16809
|
+
{
|
|
16810
|
+
type: "impl",
|
|
16811
|
+
name: "MMSettingsImpl",
|
|
16812
|
+
interface_name: "strkfarm::strats::dnmm_vesu::DeltaNeutralLoopingVesuXSTRK::IMMSettings"
|
|
16813
|
+
},
|
|
16814
|
+
{
|
|
16815
|
+
type: "struct",
|
|
16816
|
+
name: "strkfarm::components::endur::EndurSettings",
|
|
16817
|
+
members: [
|
|
16818
|
+
{
|
|
16819
|
+
name: "lst",
|
|
16820
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16821
|
+
}
|
|
16822
|
+
]
|
|
16823
|
+
},
|
|
16824
|
+
{
|
|
16825
|
+
type: "struct",
|
|
16826
|
+
name: "strkfarm::interfaces::IVesu::IStonDispatcher",
|
|
16827
|
+
members: [
|
|
16828
|
+
{
|
|
16829
|
+
name: "contract_address",
|
|
16830
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16831
|
+
}
|
|
16832
|
+
]
|
|
16833
|
+
},
|
|
16834
|
+
{
|
|
16835
|
+
type: "struct",
|
|
16836
|
+
name: "strkfarm::components::vesu::vesuStruct",
|
|
16837
|
+
members: [
|
|
16838
|
+
{
|
|
16839
|
+
name: "singleton",
|
|
16840
|
+
type: "strkfarm::interfaces::IVesu::IStonDispatcher"
|
|
16841
|
+
},
|
|
16842
|
+
{
|
|
16843
|
+
name: "pool_id",
|
|
16844
|
+
type: "core::felt252"
|
|
16845
|
+
},
|
|
16846
|
+
{
|
|
16847
|
+
name: "debt",
|
|
16848
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16849
|
+
},
|
|
16850
|
+
{
|
|
16851
|
+
name: "col",
|
|
16852
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16853
|
+
},
|
|
16854
|
+
{
|
|
16855
|
+
name: "oracle",
|
|
16856
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16857
|
+
}
|
|
16858
|
+
]
|
|
16859
|
+
},
|
|
16860
|
+
{
|
|
16861
|
+
type: "interface",
|
|
16862
|
+
name: "strkfarm::strats::dnmm_vesu::DeltaNeutralLoopingVesuXSTRK::IMMSettings",
|
|
16863
|
+
items: [
|
|
16864
|
+
{
|
|
16865
|
+
type: "function",
|
|
16866
|
+
name: "set_mm_settings",
|
|
16867
|
+
inputs: [
|
|
16868
|
+
{
|
|
16869
|
+
name: "lend_settings1",
|
|
16870
|
+
type: "strkfarm::components::endur::EndurSettings"
|
|
16871
|
+
},
|
|
16872
|
+
{
|
|
16873
|
+
name: "lend_settings2",
|
|
16874
|
+
type: "strkfarm::components::vesu::vesuStruct"
|
|
16875
|
+
}
|
|
16876
|
+
],
|
|
16877
|
+
outputs: [],
|
|
16878
|
+
state_mutability: "external"
|
|
16879
|
+
}
|
|
16880
|
+
]
|
|
16881
|
+
},
|
|
16882
|
+
{
|
|
16883
|
+
type: "impl",
|
|
16884
|
+
name: "DNMMImpl",
|
|
16885
|
+
interface_name: "strkfarm::interfaces::ERC721Strategy::IStrategy"
|
|
16886
|
+
},
|
|
16887
|
+
{
|
|
16888
|
+
type: "struct",
|
|
16889
|
+
name: "strkfarm::interfaces::ERC721Strategy::StrategyConfig",
|
|
16890
|
+
members: [
|
|
16891
|
+
{
|
|
16892
|
+
name: "main_token",
|
|
16893
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16894
|
+
},
|
|
16895
|
+
{
|
|
16896
|
+
name: "main_offset",
|
|
16897
|
+
type: "core::integer::u128"
|
|
16898
|
+
},
|
|
16899
|
+
{
|
|
16900
|
+
name: "secondary_token",
|
|
16901
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
16902
|
+
},
|
|
16903
|
+
{
|
|
16904
|
+
name: "secondary_offset",
|
|
16905
|
+
type: "core::integer::u128"
|
|
16906
|
+
}
|
|
16907
|
+
]
|
|
16908
|
+
},
|
|
16909
|
+
{
|
|
16910
|
+
type: "interface",
|
|
16911
|
+
name: "strkfarm::interfaces::ERC721Strategy::IStrategy",
|
|
16912
|
+
items: [
|
|
16913
|
+
{
|
|
16914
|
+
type: "function",
|
|
16915
|
+
name: "config",
|
|
16916
|
+
inputs: [],
|
|
16917
|
+
outputs: [
|
|
16918
|
+
{
|
|
16919
|
+
type: "strkfarm::interfaces::ERC721Strategy::StrategyConfig"
|
|
16920
|
+
}
|
|
16921
|
+
],
|
|
16922
|
+
state_mutability: "view"
|
|
16923
|
+
},
|
|
16924
|
+
{
|
|
16925
|
+
type: "function",
|
|
16926
|
+
name: "get_settings",
|
|
16927
|
+
inputs: [],
|
|
16928
|
+
outputs: [
|
|
16929
|
+
{
|
|
16930
|
+
type: "strkfarm::interfaces::ERC721Strategy::Settings"
|
|
16931
|
+
}
|
|
16932
|
+
],
|
|
16933
|
+
state_mutability: "view"
|
|
16934
|
+
}
|
|
16935
|
+
]
|
|
16936
|
+
},
|
|
16937
|
+
{
|
|
16938
|
+
type: "impl",
|
|
16939
|
+
name: "EkuboLockedImpl",
|
|
16940
|
+
interface_name: "ekubo::interfaces::core::ILocker"
|
|
16941
|
+
},
|
|
16942
|
+
{
|
|
16943
|
+
type: "interface",
|
|
16944
|
+
name: "ekubo::interfaces::core::ILocker",
|
|
16945
|
+
items: [
|
|
16946
|
+
{
|
|
16947
|
+
type: "function",
|
|
16948
|
+
name: "locked",
|
|
16949
|
+
inputs: [
|
|
16950
|
+
{
|
|
16951
|
+
name: "id",
|
|
16952
|
+
type: "core::integer::u32"
|
|
16953
|
+
},
|
|
16954
|
+
{
|
|
16955
|
+
name: "data",
|
|
16956
|
+
type: "core::array::Span::<core::felt252>"
|
|
16957
|
+
}
|
|
16958
|
+
],
|
|
16959
|
+
outputs: [
|
|
16960
|
+
{
|
|
16961
|
+
type: "core::array::Span::<core::felt252>"
|
|
16962
|
+
}
|
|
16963
|
+
],
|
|
16964
|
+
state_mutability: "external"
|
|
16965
|
+
}
|
|
16966
|
+
]
|
|
16967
|
+
},
|
|
16968
|
+
{
|
|
16969
|
+
type: "impl",
|
|
16970
|
+
name: "ERC721MixinImpl",
|
|
16971
|
+
interface_name: "openzeppelin_token::erc721::interface::ERC721ABI"
|
|
16972
|
+
},
|
|
16973
|
+
{
|
|
16974
|
+
type: "struct",
|
|
16975
|
+
name: "core::byte_array::ByteArray",
|
|
16976
|
+
members: [
|
|
16977
|
+
{
|
|
16978
|
+
name: "data",
|
|
16979
|
+
type: "core::array::Array::<core::bytes_31::bytes31>"
|
|
16980
|
+
},
|
|
16981
|
+
{
|
|
16982
|
+
name: "pending_word",
|
|
16983
|
+
type: "core::felt252"
|
|
16984
|
+
},
|
|
16985
|
+
{
|
|
16986
|
+
name: "pending_word_len",
|
|
16987
|
+
type: "core::integer::u32"
|
|
16988
|
+
}
|
|
16989
|
+
]
|
|
16990
|
+
},
|
|
16991
|
+
{
|
|
16992
|
+
type: "interface",
|
|
16993
|
+
name: "openzeppelin_token::erc721::interface::ERC721ABI",
|
|
16994
|
+
items: [
|
|
16995
|
+
{
|
|
16996
|
+
type: "function",
|
|
16997
|
+
name: "balance_of",
|
|
16998
|
+
inputs: [
|
|
16999
|
+
{
|
|
17000
|
+
name: "account",
|
|
17001
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17002
|
+
}
|
|
17003
|
+
],
|
|
17004
|
+
outputs: [
|
|
17005
|
+
{
|
|
17006
|
+
type: "core::integer::u256"
|
|
17007
|
+
}
|
|
17008
|
+
],
|
|
17009
|
+
state_mutability: "view"
|
|
17010
|
+
},
|
|
17011
|
+
{
|
|
17012
|
+
type: "function",
|
|
17013
|
+
name: "owner_of",
|
|
17014
|
+
inputs: [
|
|
17015
|
+
{
|
|
17016
|
+
name: "token_id",
|
|
17017
|
+
type: "core::integer::u256"
|
|
17018
|
+
}
|
|
17019
|
+
],
|
|
17020
|
+
outputs: [
|
|
17021
|
+
{
|
|
17022
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17023
|
+
}
|
|
17024
|
+
],
|
|
17025
|
+
state_mutability: "view"
|
|
17026
|
+
},
|
|
17027
|
+
{
|
|
17028
|
+
type: "function",
|
|
17029
|
+
name: "safe_transfer_from",
|
|
17030
|
+
inputs: [
|
|
17031
|
+
{
|
|
17032
|
+
name: "from",
|
|
17033
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17034
|
+
},
|
|
17035
|
+
{
|
|
17036
|
+
name: "to",
|
|
17037
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17038
|
+
},
|
|
17039
|
+
{
|
|
17040
|
+
name: "token_id",
|
|
17041
|
+
type: "core::integer::u256"
|
|
17042
|
+
},
|
|
17043
|
+
{
|
|
17044
|
+
name: "data",
|
|
17045
|
+
type: "core::array::Span::<core::felt252>"
|
|
17046
|
+
}
|
|
17047
|
+
],
|
|
17048
|
+
outputs: [],
|
|
17049
|
+
state_mutability: "external"
|
|
17050
|
+
},
|
|
17051
|
+
{
|
|
17052
|
+
type: "function",
|
|
17053
|
+
name: "transfer_from",
|
|
17054
|
+
inputs: [
|
|
17055
|
+
{
|
|
17056
|
+
name: "from",
|
|
17057
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17058
|
+
},
|
|
17059
|
+
{
|
|
17060
|
+
name: "to",
|
|
17061
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17062
|
+
},
|
|
17063
|
+
{
|
|
17064
|
+
name: "token_id",
|
|
17065
|
+
type: "core::integer::u256"
|
|
17066
|
+
}
|
|
17067
|
+
],
|
|
17068
|
+
outputs: [],
|
|
17069
|
+
state_mutability: "external"
|
|
17070
|
+
},
|
|
17071
|
+
{
|
|
17072
|
+
type: "function",
|
|
17073
|
+
name: "approve",
|
|
17074
|
+
inputs: [
|
|
17075
|
+
{
|
|
17076
|
+
name: "to",
|
|
17077
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17078
|
+
},
|
|
17079
|
+
{
|
|
17080
|
+
name: "token_id",
|
|
17081
|
+
type: "core::integer::u256"
|
|
17082
|
+
}
|
|
17083
|
+
],
|
|
17084
|
+
outputs: [],
|
|
17085
|
+
state_mutability: "external"
|
|
17086
|
+
},
|
|
17087
|
+
{
|
|
17088
|
+
type: "function",
|
|
17089
|
+
name: "set_approval_for_all",
|
|
17090
|
+
inputs: [
|
|
17091
|
+
{
|
|
17092
|
+
name: "operator",
|
|
17093
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17094
|
+
},
|
|
17095
|
+
{
|
|
17096
|
+
name: "approved",
|
|
17097
|
+
type: "core::bool"
|
|
17098
|
+
}
|
|
17099
|
+
],
|
|
17100
|
+
outputs: [],
|
|
17101
|
+
state_mutability: "external"
|
|
17102
|
+
},
|
|
17103
|
+
{
|
|
17104
|
+
type: "function",
|
|
17105
|
+
name: "get_approved",
|
|
17106
|
+
inputs: [
|
|
17107
|
+
{
|
|
17108
|
+
name: "token_id",
|
|
17109
|
+
type: "core::integer::u256"
|
|
17110
|
+
}
|
|
17111
|
+
],
|
|
17112
|
+
outputs: [
|
|
17113
|
+
{
|
|
17114
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17115
|
+
}
|
|
17116
|
+
],
|
|
17117
|
+
state_mutability: "view"
|
|
17118
|
+
},
|
|
17119
|
+
{
|
|
17120
|
+
type: "function",
|
|
17121
|
+
name: "is_approved_for_all",
|
|
17122
|
+
inputs: [
|
|
17123
|
+
{
|
|
17124
|
+
name: "owner",
|
|
17125
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17126
|
+
},
|
|
17127
|
+
{
|
|
17128
|
+
name: "operator",
|
|
17129
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17130
|
+
}
|
|
17131
|
+
],
|
|
17132
|
+
outputs: [
|
|
17133
|
+
{
|
|
17134
|
+
type: "core::bool"
|
|
17135
|
+
}
|
|
17136
|
+
],
|
|
17137
|
+
state_mutability: "view"
|
|
17138
|
+
},
|
|
17139
|
+
{
|
|
17140
|
+
type: "function",
|
|
17141
|
+
name: "supports_interface",
|
|
17142
|
+
inputs: [
|
|
17143
|
+
{
|
|
17144
|
+
name: "interface_id",
|
|
17145
|
+
type: "core::felt252"
|
|
17146
|
+
}
|
|
17147
|
+
],
|
|
17148
|
+
outputs: [
|
|
17149
|
+
{
|
|
17150
|
+
type: "core::bool"
|
|
17151
|
+
}
|
|
17152
|
+
],
|
|
17153
|
+
state_mutability: "view"
|
|
17154
|
+
},
|
|
17155
|
+
{
|
|
17156
|
+
type: "function",
|
|
17157
|
+
name: "name",
|
|
17158
|
+
inputs: [],
|
|
17159
|
+
outputs: [
|
|
17160
|
+
{
|
|
17161
|
+
type: "core::byte_array::ByteArray"
|
|
17162
|
+
}
|
|
17163
|
+
],
|
|
17164
|
+
state_mutability: "view"
|
|
17165
|
+
},
|
|
17166
|
+
{
|
|
17167
|
+
type: "function",
|
|
17168
|
+
name: "symbol",
|
|
17169
|
+
inputs: [],
|
|
17170
|
+
outputs: [
|
|
17171
|
+
{
|
|
17172
|
+
type: "core::byte_array::ByteArray"
|
|
17173
|
+
}
|
|
17174
|
+
],
|
|
17175
|
+
state_mutability: "view"
|
|
17176
|
+
},
|
|
17177
|
+
{
|
|
17178
|
+
type: "function",
|
|
17179
|
+
name: "token_uri",
|
|
17180
|
+
inputs: [
|
|
17181
|
+
{
|
|
17182
|
+
name: "token_id",
|
|
17183
|
+
type: "core::integer::u256"
|
|
17184
|
+
}
|
|
17185
|
+
],
|
|
17186
|
+
outputs: [
|
|
17187
|
+
{
|
|
17188
|
+
type: "core::byte_array::ByteArray"
|
|
17189
|
+
}
|
|
17190
|
+
],
|
|
17191
|
+
state_mutability: "view"
|
|
17192
|
+
},
|
|
17193
|
+
{
|
|
17194
|
+
type: "function",
|
|
17195
|
+
name: "balanceOf",
|
|
17196
|
+
inputs: [
|
|
17197
|
+
{
|
|
17198
|
+
name: "account",
|
|
17199
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17200
|
+
}
|
|
17201
|
+
],
|
|
17202
|
+
outputs: [
|
|
17203
|
+
{
|
|
17204
|
+
type: "core::integer::u256"
|
|
17205
|
+
}
|
|
17206
|
+
],
|
|
17207
|
+
state_mutability: "view"
|
|
17208
|
+
},
|
|
17209
|
+
{
|
|
17210
|
+
type: "function",
|
|
17211
|
+
name: "ownerOf",
|
|
17212
|
+
inputs: [
|
|
17213
|
+
{
|
|
17214
|
+
name: "tokenId",
|
|
17215
|
+
type: "core::integer::u256"
|
|
17216
|
+
}
|
|
17217
|
+
],
|
|
17218
|
+
outputs: [
|
|
17219
|
+
{
|
|
17220
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17221
|
+
}
|
|
17222
|
+
],
|
|
17223
|
+
state_mutability: "view"
|
|
17224
|
+
},
|
|
17225
|
+
{
|
|
17226
|
+
type: "function",
|
|
17227
|
+
name: "safeTransferFrom",
|
|
17228
|
+
inputs: [
|
|
17229
|
+
{
|
|
17230
|
+
name: "from",
|
|
17231
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17232
|
+
},
|
|
17233
|
+
{
|
|
17234
|
+
name: "to",
|
|
17235
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17236
|
+
},
|
|
17237
|
+
{
|
|
17238
|
+
name: "tokenId",
|
|
17239
|
+
type: "core::integer::u256"
|
|
17240
|
+
},
|
|
17241
|
+
{
|
|
17242
|
+
name: "data",
|
|
17243
|
+
type: "core::array::Span::<core::felt252>"
|
|
17244
|
+
}
|
|
17245
|
+
],
|
|
17246
|
+
outputs: [],
|
|
17247
|
+
state_mutability: "external"
|
|
17248
|
+
},
|
|
17249
|
+
{
|
|
17250
|
+
type: "function",
|
|
17251
|
+
name: "transferFrom",
|
|
17252
|
+
inputs: [
|
|
17253
|
+
{
|
|
17254
|
+
name: "from",
|
|
17255
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17256
|
+
},
|
|
17257
|
+
{
|
|
17258
|
+
name: "to",
|
|
17259
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17260
|
+
},
|
|
17261
|
+
{
|
|
17262
|
+
name: "tokenId",
|
|
17263
|
+
type: "core::integer::u256"
|
|
17264
|
+
}
|
|
17265
|
+
],
|
|
17266
|
+
outputs: [],
|
|
17267
|
+
state_mutability: "external"
|
|
17268
|
+
},
|
|
17269
|
+
{
|
|
17270
|
+
type: "function",
|
|
17271
|
+
name: "setApprovalForAll",
|
|
17272
|
+
inputs: [
|
|
17273
|
+
{
|
|
17274
|
+
name: "operator",
|
|
17275
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17276
|
+
},
|
|
17277
|
+
{
|
|
17278
|
+
name: "approved",
|
|
17279
|
+
type: "core::bool"
|
|
17280
|
+
}
|
|
17281
|
+
],
|
|
17282
|
+
outputs: [],
|
|
17283
|
+
state_mutability: "external"
|
|
17284
|
+
},
|
|
17285
|
+
{
|
|
17286
|
+
type: "function",
|
|
17287
|
+
name: "getApproved",
|
|
17288
|
+
inputs: [
|
|
17289
|
+
{
|
|
17290
|
+
name: "tokenId",
|
|
17291
|
+
type: "core::integer::u256"
|
|
17292
|
+
}
|
|
17293
|
+
],
|
|
17294
|
+
outputs: [
|
|
17295
|
+
{
|
|
17296
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17297
|
+
}
|
|
17298
|
+
],
|
|
17299
|
+
state_mutability: "view"
|
|
17300
|
+
},
|
|
17301
|
+
{
|
|
17302
|
+
type: "function",
|
|
17303
|
+
name: "isApprovedForAll",
|
|
17304
|
+
inputs: [
|
|
17305
|
+
{
|
|
17306
|
+
name: "owner",
|
|
17307
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17308
|
+
},
|
|
17309
|
+
{
|
|
17310
|
+
name: "operator",
|
|
17311
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17312
|
+
}
|
|
17313
|
+
],
|
|
17314
|
+
outputs: [
|
|
17315
|
+
{
|
|
17316
|
+
type: "core::bool"
|
|
17317
|
+
}
|
|
17318
|
+
],
|
|
17319
|
+
state_mutability: "view"
|
|
17320
|
+
},
|
|
17321
|
+
{
|
|
17322
|
+
type: "function",
|
|
17323
|
+
name: "tokenURI",
|
|
17324
|
+
inputs: [
|
|
17325
|
+
{
|
|
17326
|
+
name: "tokenId",
|
|
17327
|
+
type: "core::integer::u256"
|
|
17328
|
+
}
|
|
17329
|
+
],
|
|
17330
|
+
outputs: [
|
|
17331
|
+
{
|
|
17332
|
+
type: "core::byte_array::ByteArray"
|
|
17333
|
+
}
|
|
17334
|
+
],
|
|
17335
|
+
state_mutability: "view"
|
|
17336
|
+
}
|
|
17337
|
+
]
|
|
17338
|
+
},
|
|
17339
|
+
{
|
|
17340
|
+
type: "impl",
|
|
17341
|
+
name: "RewardShareImpl",
|
|
17342
|
+
interface_name: "strkfarm::components::harvester::reward_shares::IRewardShare"
|
|
17343
|
+
},
|
|
17344
|
+
{
|
|
17345
|
+
type: "struct",
|
|
17346
|
+
name: "strkfarm::components::harvester::reward_shares::UserRewardsInfo",
|
|
17347
|
+
members: [
|
|
17348
|
+
{
|
|
17349
|
+
name: "pending_round_points",
|
|
17350
|
+
type: "core::felt252"
|
|
17351
|
+
},
|
|
17352
|
+
{
|
|
17353
|
+
name: "shares_owned",
|
|
17354
|
+
type: "core::felt252"
|
|
17355
|
+
},
|
|
17356
|
+
{
|
|
17357
|
+
name: "block_number",
|
|
17358
|
+
type: "core::integer::u64"
|
|
17359
|
+
},
|
|
17360
|
+
{
|
|
17361
|
+
name: "index",
|
|
17362
|
+
type: "core::integer::u32"
|
|
17363
|
+
}
|
|
17364
|
+
]
|
|
17365
|
+
},
|
|
17366
|
+
{
|
|
17367
|
+
type: "struct",
|
|
17368
|
+
name: "strkfarm::components::harvester::reward_shares::RewardsInfo",
|
|
17369
|
+
members: [
|
|
17370
|
+
{
|
|
17371
|
+
name: "amount",
|
|
17372
|
+
type: "core::felt252"
|
|
17373
|
+
},
|
|
17374
|
+
{
|
|
17375
|
+
name: "shares",
|
|
17376
|
+
type: "core::felt252"
|
|
17377
|
+
},
|
|
17378
|
+
{
|
|
17379
|
+
name: "total_round_points",
|
|
17380
|
+
type: "core::felt252"
|
|
17381
|
+
},
|
|
17382
|
+
{
|
|
17383
|
+
name: "block_number",
|
|
17384
|
+
type: "core::integer::u64"
|
|
17385
|
+
}
|
|
17386
|
+
]
|
|
17387
|
+
},
|
|
17388
|
+
{
|
|
17389
|
+
type: "interface",
|
|
17390
|
+
name: "strkfarm::components::harvester::reward_shares::IRewardShare",
|
|
17391
|
+
items: [
|
|
17392
|
+
{
|
|
17393
|
+
type: "function",
|
|
17394
|
+
name: "get_user_reward_info",
|
|
17395
|
+
inputs: [
|
|
17396
|
+
{
|
|
17397
|
+
name: "user",
|
|
17398
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17399
|
+
}
|
|
17400
|
+
],
|
|
17401
|
+
outputs: [
|
|
17402
|
+
{
|
|
17403
|
+
type: "strkfarm::components::harvester::reward_shares::UserRewardsInfo"
|
|
17404
|
+
}
|
|
17405
|
+
],
|
|
17406
|
+
state_mutability: "view"
|
|
17407
|
+
},
|
|
17408
|
+
{
|
|
17409
|
+
type: "function",
|
|
17410
|
+
name: "get_rewards_info",
|
|
17411
|
+
inputs: [
|
|
17412
|
+
{
|
|
17413
|
+
name: "index",
|
|
17414
|
+
type: "core::integer::u32"
|
|
17415
|
+
}
|
|
17416
|
+
],
|
|
17417
|
+
outputs: [
|
|
17418
|
+
{
|
|
17419
|
+
type: "strkfarm::components::harvester::reward_shares::RewardsInfo"
|
|
17420
|
+
}
|
|
17421
|
+
],
|
|
17422
|
+
state_mutability: "view"
|
|
17423
|
+
},
|
|
17424
|
+
{
|
|
17425
|
+
type: "function",
|
|
17426
|
+
name: "get_total_rewards",
|
|
17427
|
+
inputs: [],
|
|
17428
|
+
outputs: [
|
|
17429
|
+
{
|
|
17430
|
+
type: "core::integer::u32"
|
|
17431
|
+
}
|
|
17432
|
+
],
|
|
17433
|
+
state_mutability: "view"
|
|
17434
|
+
},
|
|
17435
|
+
{
|
|
17436
|
+
type: "function",
|
|
17437
|
+
name: "get_total_unminted_shares",
|
|
17438
|
+
inputs: [],
|
|
17439
|
+
outputs: [
|
|
17440
|
+
{
|
|
17441
|
+
type: "core::felt252"
|
|
17442
|
+
}
|
|
17443
|
+
],
|
|
17444
|
+
state_mutability: "view"
|
|
17445
|
+
},
|
|
17446
|
+
{
|
|
17447
|
+
type: "function",
|
|
17448
|
+
name: "get_additional_shares",
|
|
17449
|
+
inputs: [
|
|
17450
|
+
{
|
|
17451
|
+
name: "user",
|
|
17452
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17453
|
+
}
|
|
17454
|
+
],
|
|
17455
|
+
outputs: [
|
|
17456
|
+
{
|
|
17457
|
+
type: "(core::felt252, core::integer::u64, core::felt252)"
|
|
17458
|
+
}
|
|
17459
|
+
],
|
|
17460
|
+
state_mutability: "view"
|
|
17461
|
+
}
|
|
17462
|
+
]
|
|
17463
|
+
},
|
|
17464
|
+
{
|
|
17465
|
+
type: "impl",
|
|
17466
|
+
name: "CommonCompImpl",
|
|
17467
|
+
interface_name: "strkfarm::interfaces::common::ICommon"
|
|
17468
|
+
},
|
|
17469
|
+
{
|
|
17470
|
+
type: "interface",
|
|
17471
|
+
name: "strkfarm::interfaces::common::ICommon",
|
|
17472
|
+
items: [
|
|
17473
|
+
{
|
|
17474
|
+
type: "function",
|
|
17475
|
+
name: "upgrade",
|
|
17476
|
+
inputs: [
|
|
17477
|
+
{
|
|
17478
|
+
name: "new_class",
|
|
17479
|
+
type: "core::starknet::class_hash::ClassHash"
|
|
17480
|
+
}
|
|
17481
|
+
],
|
|
17482
|
+
outputs: [],
|
|
17483
|
+
state_mutability: "external"
|
|
17484
|
+
},
|
|
17485
|
+
{
|
|
17486
|
+
type: "function",
|
|
17487
|
+
name: "pause",
|
|
17488
|
+
inputs: [],
|
|
17489
|
+
outputs: [],
|
|
17490
|
+
state_mutability: "external"
|
|
17491
|
+
},
|
|
17492
|
+
{
|
|
17493
|
+
type: "function",
|
|
17494
|
+
name: "unpause",
|
|
17495
|
+
inputs: [],
|
|
17496
|
+
outputs: [],
|
|
17497
|
+
state_mutability: "external"
|
|
17498
|
+
},
|
|
17499
|
+
{
|
|
17500
|
+
type: "function",
|
|
17501
|
+
name: "is_paused",
|
|
17502
|
+
inputs: [],
|
|
17503
|
+
outputs: [
|
|
17504
|
+
{
|
|
17505
|
+
type: "core::bool"
|
|
17506
|
+
}
|
|
17507
|
+
],
|
|
17508
|
+
state_mutability: "view"
|
|
17509
|
+
},
|
|
17510
|
+
{
|
|
17511
|
+
type: "function",
|
|
17512
|
+
name: "owner",
|
|
17513
|
+
inputs: [],
|
|
17514
|
+
outputs: [
|
|
17515
|
+
{
|
|
17516
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17517
|
+
}
|
|
17518
|
+
],
|
|
17519
|
+
state_mutability: "view"
|
|
17520
|
+
},
|
|
17521
|
+
{
|
|
17522
|
+
type: "function",
|
|
17523
|
+
name: "transfer_ownership",
|
|
17524
|
+
inputs: [
|
|
17525
|
+
{
|
|
17526
|
+
name: "new_owner",
|
|
17527
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17528
|
+
}
|
|
17529
|
+
],
|
|
17530
|
+
outputs: [],
|
|
17531
|
+
state_mutability: "external"
|
|
17532
|
+
},
|
|
17533
|
+
{
|
|
17534
|
+
type: "function",
|
|
17535
|
+
name: "renounce_ownership",
|
|
17536
|
+
inputs: [],
|
|
17537
|
+
outputs: [],
|
|
17538
|
+
state_mutability: "external"
|
|
17539
|
+
}
|
|
17540
|
+
]
|
|
17541
|
+
},
|
|
17542
|
+
{
|
|
17543
|
+
type: "constructor",
|
|
17544
|
+
name: "constructor",
|
|
17545
|
+
inputs: [
|
|
17546
|
+
{
|
|
17547
|
+
name: "name",
|
|
17548
|
+
type: "core::byte_array::ByteArray"
|
|
17549
|
+
},
|
|
17550
|
+
{
|
|
17551
|
+
name: "symbol",
|
|
17552
|
+
type: "core::byte_array::ByteArray"
|
|
17553
|
+
},
|
|
17554
|
+
{
|
|
17555
|
+
name: "base_uri",
|
|
17556
|
+
type: "core::byte_array::ByteArray"
|
|
17557
|
+
},
|
|
17558
|
+
{
|
|
17559
|
+
name: "owner",
|
|
17560
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17561
|
+
},
|
|
17562
|
+
{
|
|
17563
|
+
name: "main_token",
|
|
17564
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17565
|
+
},
|
|
17566
|
+
{
|
|
17567
|
+
name: "main_offset",
|
|
17568
|
+
type: "core::integer::u128"
|
|
17569
|
+
},
|
|
17570
|
+
{
|
|
17571
|
+
name: "secondary_token",
|
|
17572
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
17573
|
+
},
|
|
17574
|
+
{
|
|
17575
|
+
name: "secondary_offset",
|
|
17576
|
+
type: "core::integer::u128"
|
|
17577
|
+
},
|
|
17578
|
+
{
|
|
17579
|
+
name: "settings",
|
|
17580
|
+
type: "strkfarm::interfaces::ERC721Strategy::Settings"
|
|
17581
|
+
},
|
|
17582
|
+
{
|
|
17583
|
+
name: "lend_settings1",
|
|
17584
|
+
type: "strkfarm::components::endur::EndurSettings"
|
|
17585
|
+
},
|
|
17586
|
+
{
|
|
17587
|
+
name: "lend_settings2",
|
|
17588
|
+
type: "strkfarm::components::vesu::vesuStruct"
|
|
17589
|
+
}
|
|
17590
|
+
]
|
|
17591
|
+
},
|
|
17592
|
+
{
|
|
17593
|
+
type: "event",
|
|
17594
|
+
name: "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
|
|
17595
|
+
kind: "struct",
|
|
17596
|
+
members: [
|
|
17597
|
+
{
|
|
17598
|
+
name: "from",
|
|
17599
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17600
|
+
kind: "key"
|
|
17601
|
+
},
|
|
17602
|
+
{
|
|
17603
|
+
name: "to",
|
|
17604
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17605
|
+
kind: "key"
|
|
17606
|
+
},
|
|
17607
|
+
{
|
|
17608
|
+
name: "token_id",
|
|
17609
|
+
type: "core::integer::u256",
|
|
17610
|
+
kind: "key"
|
|
17611
|
+
}
|
|
17612
|
+
]
|
|
17613
|
+
},
|
|
17614
|
+
{
|
|
17615
|
+
type: "event",
|
|
17616
|
+
name: "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
|
|
17617
|
+
kind: "struct",
|
|
17618
|
+
members: [
|
|
17619
|
+
{
|
|
17620
|
+
name: "owner",
|
|
17621
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17622
|
+
kind: "key"
|
|
17623
|
+
},
|
|
17624
|
+
{
|
|
17625
|
+
name: "approved",
|
|
17626
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17627
|
+
kind: "key"
|
|
17628
|
+
},
|
|
17629
|
+
{
|
|
17630
|
+
name: "token_id",
|
|
17631
|
+
type: "core::integer::u256",
|
|
17632
|
+
kind: "key"
|
|
17633
|
+
}
|
|
17634
|
+
]
|
|
17635
|
+
},
|
|
17636
|
+
{
|
|
17637
|
+
type: "event",
|
|
17638
|
+
name: "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
|
|
17639
|
+
kind: "struct",
|
|
17640
|
+
members: [
|
|
17641
|
+
{
|
|
17642
|
+
name: "owner",
|
|
17643
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17644
|
+
kind: "key"
|
|
17645
|
+
},
|
|
17646
|
+
{
|
|
17647
|
+
name: "operator",
|
|
17648
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17649
|
+
kind: "key"
|
|
17650
|
+
},
|
|
17651
|
+
{
|
|
17652
|
+
name: "approved",
|
|
17653
|
+
type: "core::bool",
|
|
17654
|
+
kind: "data"
|
|
17655
|
+
}
|
|
17656
|
+
]
|
|
17657
|
+
},
|
|
17658
|
+
{
|
|
17659
|
+
type: "event",
|
|
17660
|
+
name: "openzeppelin_token::erc721::erc721::ERC721Component::Event",
|
|
17661
|
+
kind: "enum",
|
|
17662
|
+
variants: [
|
|
17663
|
+
{
|
|
17664
|
+
name: "Transfer",
|
|
17665
|
+
type: "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
|
|
17666
|
+
kind: "nested"
|
|
17667
|
+
},
|
|
17668
|
+
{
|
|
17669
|
+
name: "Approval",
|
|
17670
|
+
type: "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
|
|
17671
|
+
kind: "nested"
|
|
17672
|
+
},
|
|
17673
|
+
{
|
|
17674
|
+
name: "ApprovalForAll",
|
|
17675
|
+
type: "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
|
|
17676
|
+
kind: "nested"
|
|
17677
|
+
}
|
|
17678
|
+
]
|
|
17679
|
+
},
|
|
17680
|
+
{
|
|
17681
|
+
type: "event",
|
|
17682
|
+
name: "openzeppelin_introspection::src5::SRC5Component::Event",
|
|
17683
|
+
kind: "enum",
|
|
17684
|
+
variants: []
|
|
17685
|
+
},
|
|
17686
|
+
{
|
|
17687
|
+
type: "event",
|
|
17688
|
+
name: "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Upgraded",
|
|
17689
|
+
kind: "struct",
|
|
17690
|
+
members: [
|
|
17691
|
+
{
|
|
17692
|
+
name: "class_hash",
|
|
17693
|
+
type: "core::starknet::class_hash::ClassHash",
|
|
17694
|
+
kind: "data"
|
|
17695
|
+
}
|
|
17696
|
+
]
|
|
17697
|
+
},
|
|
17698
|
+
{
|
|
17699
|
+
type: "event",
|
|
17700
|
+
name: "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Event",
|
|
17701
|
+
kind: "enum",
|
|
17702
|
+
variants: [
|
|
17703
|
+
{
|
|
17704
|
+
name: "Upgraded",
|
|
17705
|
+
type: "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Upgraded",
|
|
17706
|
+
kind: "nested"
|
|
17707
|
+
}
|
|
17708
|
+
]
|
|
17709
|
+
},
|
|
17710
|
+
{
|
|
17711
|
+
type: "event",
|
|
17712
|
+
name: "openzeppelin_security::pausable::PausableComponent::Paused",
|
|
17713
|
+
kind: "struct",
|
|
17714
|
+
members: [
|
|
17715
|
+
{
|
|
17716
|
+
name: "account",
|
|
17717
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17718
|
+
kind: "data"
|
|
17719
|
+
}
|
|
17720
|
+
]
|
|
17721
|
+
},
|
|
17722
|
+
{
|
|
17723
|
+
type: "event",
|
|
17724
|
+
name: "openzeppelin_security::pausable::PausableComponent::Unpaused",
|
|
17725
|
+
kind: "struct",
|
|
17726
|
+
members: [
|
|
17727
|
+
{
|
|
17728
|
+
name: "account",
|
|
17729
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17730
|
+
kind: "data"
|
|
17731
|
+
}
|
|
17732
|
+
]
|
|
17733
|
+
},
|
|
17734
|
+
{
|
|
17735
|
+
type: "event",
|
|
17736
|
+
name: "openzeppelin_security::pausable::PausableComponent::Event",
|
|
17737
|
+
kind: "enum",
|
|
17738
|
+
variants: [
|
|
17739
|
+
{
|
|
17740
|
+
name: "Paused",
|
|
17741
|
+
type: "openzeppelin_security::pausable::PausableComponent::Paused",
|
|
17742
|
+
kind: "nested"
|
|
17743
|
+
},
|
|
17744
|
+
{
|
|
17745
|
+
name: "Unpaused",
|
|
17746
|
+
type: "openzeppelin_security::pausable::PausableComponent::Unpaused",
|
|
17747
|
+
kind: "nested"
|
|
17748
|
+
}
|
|
17749
|
+
]
|
|
17750
|
+
},
|
|
17751
|
+
{
|
|
17752
|
+
type: "event",
|
|
17753
|
+
name: "openzeppelin_security::reentrancyguard::ReentrancyGuardComponent::Event",
|
|
17754
|
+
kind: "enum",
|
|
17755
|
+
variants: []
|
|
17756
|
+
},
|
|
17757
|
+
{
|
|
17758
|
+
type: "event",
|
|
17759
|
+
name: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred",
|
|
17760
|
+
kind: "struct",
|
|
17761
|
+
members: [
|
|
17762
|
+
{
|
|
17763
|
+
name: "previous_owner",
|
|
17764
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17765
|
+
kind: "key"
|
|
17766
|
+
},
|
|
17767
|
+
{
|
|
17768
|
+
name: "new_owner",
|
|
17769
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17770
|
+
kind: "key"
|
|
17771
|
+
}
|
|
17772
|
+
]
|
|
17773
|
+
},
|
|
17774
|
+
{
|
|
17775
|
+
type: "event",
|
|
17776
|
+
name: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted",
|
|
17777
|
+
kind: "struct",
|
|
17778
|
+
members: [
|
|
17779
|
+
{
|
|
17780
|
+
name: "previous_owner",
|
|
17781
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17782
|
+
kind: "key"
|
|
17783
|
+
},
|
|
17784
|
+
{
|
|
17785
|
+
name: "new_owner",
|
|
17786
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17787
|
+
kind: "key"
|
|
17788
|
+
}
|
|
17789
|
+
]
|
|
17790
|
+
},
|
|
17791
|
+
{
|
|
17792
|
+
type: "event",
|
|
17793
|
+
name: "openzeppelin_access::ownable::ownable::OwnableComponent::Event",
|
|
17794
|
+
kind: "enum",
|
|
17795
|
+
variants: [
|
|
17796
|
+
{
|
|
17797
|
+
name: "OwnershipTransferred",
|
|
17798
|
+
type: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred",
|
|
17799
|
+
kind: "nested"
|
|
17800
|
+
},
|
|
17801
|
+
{
|
|
17802
|
+
name: "OwnershipTransferStarted",
|
|
17803
|
+
type: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted",
|
|
17804
|
+
kind: "nested"
|
|
17805
|
+
}
|
|
17806
|
+
]
|
|
17807
|
+
},
|
|
17808
|
+
{
|
|
17809
|
+
type: "event",
|
|
17810
|
+
name: "strkfarm::components::common::CommonComp::Event",
|
|
17811
|
+
kind: "enum",
|
|
17812
|
+
variants: []
|
|
17813
|
+
},
|
|
17814
|
+
{
|
|
17815
|
+
type: "event",
|
|
17816
|
+
name: "strkfarm::components::harvester::reward_shares::RewardShareComponent::Rewards",
|
|
17817
|
+
kind: "struct",
|
|
17818
|
+
members: [
|
|
17819
|
+
{
|
|
17820
|
+
name: "index",
|
|
17821
|
+
type: "core::integer::u32",
|
|
17822
|
+
kind: "data"
|
|
17823
|
+
},
|
|
17824
|
+
{
|
|
17825
|
+
name: "info",
|
|
17826
|
+
type: "strkfarm::components::harvester::reward_shares::RewardsInfo",
|
|
17827
|
+
kind: "data"
|
|
17828
|
+
},
|
|
17829
|
+
{
|
|
17830
|
+
name: "total_reward_shares",
|
|
17831
|
+
type: "core::felt252",
|
|
17832
|
+
kind: "data"
|
|
17833
|
+
},
|
|
17834
|
+
{
|
|
17835
|
+
name: "timestamp",
|
|
17836
|
+
type: "core::integer::u64",
|
|
17837
|
+
kind: "data"
|
|
17838
|
+
}
|
|
17839
|
+
]
|
|
17840
|
+
},
|
|
17841
|
+
{
|
|
17842
|
+
type: "event",
|
|
17843
|
+
name: "strkfarm::components::harvester::reward_shares::RewardShareComponent::UserRewards",
|
|
17844
|
+
kind: "struct",
|
|
17845
|
+
members: [
|
|
17846
|
+
{
|
|
17847
|
+
name: "user",
|
|
17848
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17849
|
+
kind: "key"
|
|
17850
|
+
},
|
|
17851
|
+
{
|
|
17852
|
+
name: "info",
|
|
17853
|
+
type: "strkfarm::components::harvester::reward_shares::UserRewardsInfo",
|
|
17854
|
+
kind: "data"
|
|
17855
|
+
},
|
|
17856
|
+
{
|
|
17857
|
+
name: "total_reward_shares",
|
|
17858
|
+
type: "core::felt252",
|
|
17859
|
+
kind: "data"
|
|
17860
|
+
},
|
|
17861
|
+
{
|
|
17862
|
+
name: "timestamp",
|
|
17863
|
+
type: "core::integer::u64",
|
|
17864
|
+
kind: "data"
|
|
17865
|
+
}
|
|
17866
|
+
]
|
|
17867
|
+
},
|
|
17868
|
+
{
|
|
17869
|
+
type: "event",
|
|
17870
|
+
name: "strkfarm::components::harvester::reward_shares::RewardShareComponent::Event",
|
|
17871
|
+
kind: "enum",
|
|
17872
|
+
variants: [
|
|
17873
|
+
{
|
|
17874
|
+
name: "Rewards",
|
|
17875
|
+
type: "strkfarm::components::harvester::reward_shares::RewardShareComponent::Rewards",
|
|
17876
|
+
kind: "nested"
|
|
17877
|
+
},
|
|
17878
|
+
{
|
|
17879
|
+
name: "UserRewards",
|
|
17880
|
+
type: "strkfarm::components::harvester::reward_shares::RewardShareComponent::UserRewards",
|
|
17881
|
+
kind: "nested"
|
|
17882
|
+
}
|
|
17883
|
+
]
|
|
17884
|
+
},
|
|
17885
|
+
{
|
|
17886
|
+
type: "event",
|
|
17887
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Deposit",
|
|
17888
|
+
kind: "struct",
|
|
17889
|
+
members: [
|
|
17890
|
+
{
|
|
17891
|
+
name: "sender",
|
|
17892
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17893
|
+
kind: "key"
|
|
17894
|
+
},
|
|
17895
|
+
{
|
|
17896
|
+
name: "owner",
|
|
17897
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17898
|
+
kind: "key"
|
|
17899
|
+
},
|
|
17900
|
+
{
|
|
17901
|
+
name: "assets",
|
|
17902
|
+
type: "core::integer::u256",
|
|
17903
|
+
kind: "data"
|
|
17904
|
+
},
|
|
17905
|
+
{
|
|
17906
|
+
name: "net_position",
|
|
17907
|
+
type: "strkfarm::interfaces::ERC721Strategy::Position",
|
|
17908
|
+
kind: "data"
|
|
17909
|
+
}
|
|
17910
|
+
]
|
|
17911
|
+
},
|
|
17912
|
+
{
|
|
17913
|
+
type: "event",
|
|
17914
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Withdraw",
|
|
17915
|
+
kind: "struct",
|
|
17916
|
+
members: [
|
|
17917
|
+
{
|
|
17918
|
+
name: "sender",
|
|
17919
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17920
|
+
kind: "key"
|
|
17921
|
+
},
|
|
17922
|
+
{
|
|
17923
|
+
name: "receiver",
|
|
17924
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17925
|
+
kind: "key"
|
|
17926
|
+
},
|
|
17927
|
+
{
|
|
17928
|
+
name: "owner",
|
|
17929
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17930
|
+
kind: "key"
|
|
17931
|
+
},
|
|
17932
|
+
{
|
|
17933
|
+
name: "assets",
|
|
17934
|
+
type: "core::integer::u256",
|
|
17935
|
+
kind: "data"
|
|
17936
|
+
},
|
|
17937
|
+
{
|
|
17938
|
+
name: "net_position",
|
|
17939
|
+
type: "strkfarm::interfaces::ERC721Strategy::Position",
|
|
17940
|
+
kind: "data"
|
|
17941
|
+
}
|
|
17942
|
+
]
|
|
17943
|
+
},
|
|
17944
|
+
{
|
|
17945
|
+
type: "event",
|
|
17946
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Rebalance",
|
|
17947
|
+
kind: "struct",
|
|
17948
|
+
members: [
|
|
17949
|
+
{
|
|
17950
|
+
name: "caller",
|
|
17951
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
17952
|
+
kind: "key"
|
|
17953
|
+
},
|
|
17954
|
+
{
|
|
17955
|
+
name: "amount",
|
|
17956
|
+
type: "core::integer::u256",
|
|
17957
|
+
kind: "data"
|
|
17958
|
+
},
|
|
17959
|
+
{
|
|
17960
|
+
name: "shouldRepay",
|
|
17961
|
+
type: "core::bool",
|
|
17962
|
+
kind: "data"
|
|
17963
|
+
},
|
|
17964
|
+
{
|
|
17965
|
+
name: "pre_hf1",
|
|
17966
|
+
type: "core::integer::u32",
|
|
17967
|
+
kind: "data"
|
|
17968
|
+
},
|
|
17969
|
+
{
|
|
17970
|
+
name: "pre_hf2",
|
|
17971
|
+
type: "core::integer::u32",
|
|
17972
|
+
kind: "data"
|
|
17973
|
+
},
|
|
17974
|
+
{
|
|
17975
|
+
name: "hf1",
|
|
17976
|
+
type: "core::integer::u32",
|
|
17977
|
+
kind: "data"
|
|
17978
|
+
},
|
|
17979
|
+
{
|
|
17980
|
+
name: "hf2",
|
|
17981
|
+
type: "core::integer::u32",
|
|
17982
|
+
kind: "data"
|
|
17983
|
+
}
|
|
17984
|
+
]
|
|
17985
|
+
},
|
|
17986
|
+
{
|
|
17987
|
+
type: "event",
|
|
17988
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::ShareUpdate",
|
|
17989
|
+
kind: "struct",
|
|
17990
|
+
members: [
|
|
17991
|
+
{
|
|
17992
|
+
name: "token_id",
|
|
17993
|
+
type: "core::felt252",
|
|
17994
|
+
kind: "key"
|
|
17995
|
+
},
|
|
17996
|
+
{
|
|
17997
|
+
name: "action_id",
|
|
17998
|
+
type: "core::integer::u8",
|
|
17999
|
+
kind: "key"
|
|
18000
|
+
},
|
|
18001
|
+
{
|
|
18002
|
+
name: "user_shares",
|
|
18003
|
+
type: "core::felt252",
|
|
18004
|
+
kind: "data"
|
|
18005
|
+
},
|
|
18006
|
+
{
|
|
18007
|
+
name: "total_shares",
|
|
18008
|
+
type: "core::felt252",
|
|
18009
|
+
kind: "data"
|
|
18010
|
+
}
|
|
18011
|
+
]
|
|
18012
|
+
},
|
|
18013
|
+
{
|
|
18014
|
+
type: "event",
|
|
18015
|
+
name: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Event",
|
|
18016
|
+
kind: "enum",
|
|
18017
|
+
variants: [
|
|
18018
|
+
{
|
|
18019
|
+
name: "Deposit",
|
|
18020
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Deposit",
|
|
18021
|
+
kind: "nested"
|
|
18022
|
+
},
|
|
18023
|
+
{
|
|
18024
|
+
name: "Withdraw",
|
|
18025
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Withdraw",
|
|
18026
|
+
kind: "nested"
|
|
18027
|
+
},
|
|
18028
|
+
{
|
|
18029
|
+
name: "Rebalance",
|
|
18030
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Rebalance",
|
|
18031
|
+
kind: "nested"
|
|
18032
|
+
},
|
|
18033
|
+
{
|
|
18034
|
+
name: "ShareUpdate",
|
|
18035
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::ShareUpdate",
|
|
18036
|
+
kind: "nested"
|
|
18037
|
+
}
|
|
18038
|
+
]
|
|
18039
|
+
},
|
|
18040
|
+
{
|
|
18041
|
+
type: "event",
|
|
18042
|
+
name: "strkfarm::strats::dnmm_vesu::DeltaNeutralLoopingVesuXSTRK::Event",
|
|
18043
|
+
kind: "enum",
|
|
18044
|
+
variants: [
|
|
18045
|
+
{
|
|
18046
|
+
name: "ERC721Event",
|
|
18047
|
+
type: "openzeppelin_token::erc721::erc721::ERC721Component::Event",
|
|
18048
|
+
kind: "flat"
|
|
18049
|
+
},
|
|
18050
|
+
{
|
|
18051
|
+
name: "SRC5Event",
|
|
18052
|
+
type: "openzeppelin_introspection::src5::SRC5Component::Event",
|
|
18053
|
+
kind: "flat"
|
|
18054
|
+
},
|
|
18055
|
+
{
|
|
18056
|
+
name: "UpgradeableEvent",
|
|
18057
|
+
type: "openzeppelin_upgrades::upgradeable::UpgradeableComponent::Event",
|
|
18058
|
+
kind: "flat"
|
|
18059
|
+
},
|
|
18060
|
+
{
|
|
18061
|
+
name: "PausableEvent",
|
|
18062
|
+
type: "openzeppelin_security::pausable::PausableComponent::Event",
|
|
18063
|
+
kind: "flat"
|
|
18064
|
+
},
|
|
18065
|
+
{
|
|
18066
|
+
name: "ReentrancyGuardEvent",
|
|
18067
|
+
type: "openzeppelin_security::reentrancyguard::ReentrancyGuardComponent::Event",
|
|
18068
|
+
kind: "flat"
|
|
18069
|
+
},
|
|
18070
|
+
{
|
|
18071
|
+
name: "OwnableEvent",
|
|
18072
|
+
type: "openzeppelin_access::ownable::ownable::OwnableComponent::Event",
|
|
18073
|
+
kind: "flat"
|
|
18074
|
+
},
|
|
18075
|
+
{
|
|
18076
|
+
name: "CommonCompEvent",
|
|
18077
|
+
type: "strkfarm::components::common::CommonComp::Event",
|
|
18078
|
+
kind: "flat"
|
|
18079
|
+
},
|
|
18080
|
+
{
|
|
18081
|
+
name: "RewardShareEvent",
|
|
18082
|
+
type: "strkfarm::components::harvester::reward_shares::RewardShareComponent::Event",
|
|
18083
|
+
kind: "flat"
|
|
18084
|
+
},
|
|
18085
|
+
{
|
|
18086
|
+
name: "DeltaNeutralLoopingEvent",
|
|
18087
|
+
type: "strkfarm::components::delta_neutral_component::DeltaNeutralLoopingCom::Event",
|
|
18088
|
+
kind: "flat"
|
|
18089
|
+
}
|
|
18090
|
+
]
|
|
18091
|
+
}
|
|
18092
|
+
];
|
|
18093
|
+
|
|
18094
|
+
// src/strategies/sensei.ts
|
|
18095
|
+
var SenseiVault = class extends BaseStrategy {
|
|
18096
|
+
constructor(config, pricer, metadata) {
|
|
18097
|
+
super(config);
|
|
18098
|
+
this.getSettings = async () => {
|
|
18099
|
+
const settings = await this.contract.call("get_settings", []);
|
|
18100
|
+
logger.verbose("getSettings", settings);
|
|
18101
|
+
return settings;
|
|
18102
|
+
};
|
|
18103
|
+
this.address = metadata.address;
|
|
18104
|
+
this.pricer = pricer;
|
|
18105
|
+
this.metadata = metadata;
|
|
18106
|
+
this.contract = new Contract7(sensei_abi_default, this.address.address, this.config.provider);
|
|
18107
|
+
if (metadata.depositTokens.length === 0) {
|
|
18108
|
+
throw new Error("Deposit tokens are not defined in metadata");
|
|
18109
|
+
}
|
|
18110
|
+
}
|
|
18111
|
+
async getUserTVL(user) {
|
|
18112
|
+
const result = await this.contract.call(
|
|
18113
|
+
"describe_position",
|
|
18114
|
+
[user.address]
|
|
18115
|
+
);
|
|
18116
|
+
const amount = Web3Number.fromWei(
|
|
18117
|
+
uint2565.uint256ToBN(result[1].estimated_size).toString(),
|
|
18118
|
+
this.metadata.depositTokens[0].decimals
|
|
18119
|
+
);
|
|
18120
|
+
const price = await this.pricer.getPrice(
|
|
18121
|
+
this.metadata.depositTokens[0].symbol
|
|
18122
|
+
);
|
|
18123
|
+
return {
|
|
18124
|
+
usdValue: Number(amount.toFixed(6)) * price.price,
|
|
18125
|
+
amount,
|
|
18126
|
+
tokenInfo: this.metadata.depositTokens[0]
|
|
18127
|
+
};
|
|
18128
|
+
}
|
|
18129
|
+
async getTVL() {
|
|
18130
|
+
try {
|
|
18131
|
+
const {
|
|
18132
|
+
collateralXSTRK,
|
|
18133
|
+
collateralUSDValue,
|
|
18134
|
+
debtSTRK,
|
|
18135
|
+
debtUSDValue,
|
|
18136
|
+
xSTRKPrice,
|
|
18137
|
+
collateralInSTRK
|
|
18138
|
+
} = await this.getPositionInfo();
|
|
18139
|
+
const usdValue = Number(collateralUSDValue.toFixed(6)) - Number(debtUSDValue.toFixed(6));
|
|
18140
|
+
return {
|
|
18141
|
+
usdValue,
|
|
18142
|
+
amount: new Web3Number(
|
|
18143
|
+
(collateralInSTRK - Number(debtSTRK.toFixed(6))).toFixed(6),
|
|
18144
|
+
collateralXSTRK.decimals
|
|
18145
|
+
),
|
|
18146
|
+
tokenInfo: this.metadata.depositTokens[0]
|
|
18147
|
+
};
|
|
18148
|
+
} catch (error) {
|
|
18149
|
+
console.error("Error fetching TVL:", error);
|
|
18150
|
+
return {
|
|
18151
|
+
usdValue: 0,
|
|
18152
|
+
amount: new Web3Number("0", this.metadata.depositTokens[0].decimals),
|
|
18153
|
+
tokenInfo: this.metadata.depositTokens[0]
|
|
18154
|
+
};
|
|
18155
|
+
}
|
|
18156
|
+
}
|
|
18157
|
+
async depositCall(amountInfo, receiver) {
|
|
18158
|
+
const mainTokenContract = new Contract7(
|
|
18159
|
+
erc20_abi_default,
|
|
18160
|
+
this.metadata.depositTokens[0].address.address,
|
|
18161
|
+
this.config.provider
|
|
18162
|
+
);
|
|
18163
|
+
const call1 = mainTokenContract.populate("approve", [
|
|
18164
|
+
this.address.address,
|
|
18165
|
+
uint2565.bnToUint256(amountInfo.amount.toWei())
|
|
18166
|
+
]);
|
|
18167
|
+
const call2 = this.contract.populate("deposit", [
|
|
18168
|
+
uint2565.bnToUint256(amountInfo.amount.toWei()),
|
|
18169
|
+
receiver.address
|
|
18170
|
+
]);
|
|
18171
|
+
const calls = [call1, call2];
|
|
18172
|
+
return calls;
|
|
18173
|
+
}
|
|
18174
|
+
async withdrawCall(amountInfo, receiver, owner) {
|
|
18175
|
+
const call = this.contract.populate("withdraw", [
|
|
18176
|
+
uint2565.bnToUint256(amountInfo.amount.toWei()),
|
|
18177
|
+
receiver.address,
|
|
18178
|
+
300
|
|
18179
|
+
// 3% max slippage
|
|
18180
|
+
]);
|
|
18181
|
+
return [call];
|
|
18182
|
+
}
|
|
18183
|
+
async getPositionInfo() {
|
|
18184
|
+
const CACHE_KEY = "positionInfo";
|
|
18185
|
+
if (this.isCacheValid(CACHE_KEY)) {
|
|
18186
|
+
return this.getCache(CACHE_KEY);
|
|
18187
|
+
}
|
|
18188
|
+
const resp = await fetch(
|
|
18189
|
+
`${getTrovesEndpoint()}/vesu/positions?walletAddress=${this.address.address}`
|
|
18190
|
+
);
|
|
18191
|
+
const data = await resp.json();
|
|
18192
|
+
if (!data.data || data.data.length == 0) {
|
|
18193
|
+
throw new Error("No positions found");
|
|
18194
|
+
}
|
|
18195
|
+
const collateralXSTRK = Web3Number.fromWei(
|
|
18196
|
+
data.data[0].collateral.value,
|
|
18197
|
+
data.data[0].collateral.decimals
|
|
18198
|
+
);
|
|
18199
|
+
const collateralUSDValue = Web3Number.fromWei(
|
|
18200
|
+
data.data[0].collateral.usdPrice.value,
|
|
18201
|
+
data.data[0].collateral.usdPrice.decimals
|
|
18202
|
+
);
|
|
18203
|
+
const debtSTRK = Web3Number.fromWei(
|
|
18204
|
+
data.data[0].debt.value,
|
|
18205
|
+
data.data[0].debt.decimals
|
|
18206
|
+
);
|
|
18207
|
+
const debtUSDValue = Web3Number.fromWei(
|
|
18208
|
+
data.data[0].debt.usdPrice.value,
|
|
18209
|
+
data.data[0].debt.usdPrice.decimals
|
|
18210
|
+
);
|
|
18211
|
+
const xSTRKPrice = await this.getSecondaryTokenPriceRelativeToMain();
|
|
18212
|
+
const collateralInSTRK = Number(collateralXSTRK.toFixed(6)) * xSTRKPrice;
|
|
18213
|
+
const STRKUSDPrice = Number(debtUSDValue.toFixed(6)) / Number(debtSTRK.toFixed(6));
|
|
18214
|
+
const actualCollateralUSDValue = collateralInSTRK * STRKUSDPrice;
|
|
18215
|
+
const cacheData = {
|
|
18216
|
+
collateralXSTRK,
|
|
18217
|
+
collateralUSDValue: new Web3Number(
|
|
18218
|
+
actualCollateralUSDValue.toFixed(6),
|
|
18219
|
+
collateralUSDValue.decimals
|
|
18220
|
+
),
|
|
18221
|
+
debtSTRK,
|
|
18222
|
+
debtUSDValue,
|
|
18223
|
+
xSTRKPrice,
|
|
18224
|
+
collateralInSTRK
|
|
18225
|
+
};
|
|
18226
|
+
this.setCache(CACHE_KEY, cacheData);
|
|
18227
|
+
return cacheData;
|
|
18228
|
+
}
|
|
18229
|
+
async getSecondaryTokenPriceRelativeToMain(retry = 0) {
|
|
18230
|
+
const CACHE_KEY = "xSTRKPrice";
|
|
18231
|
+
if (this.isCacheValid(CACHE_KEY)) {
|
|
18232
|
+
return this.getCache(CACHE_KEY);
|
|
18233
|
+
}
|
|
18234
|
+
const params = {
|
|
18235
|
+
sellTokenAddress: this.metadata.additionalInfo.secondaryToken.address.address,
|
|
18236
|
+
buyTokenAddress: this.metadata.additionalInfo.mainToken.address.address,
|
|
18237
|
+
sellAmount: BigInt(new Web3Number("1", 18).toWei()),
|
|
18238
|
+
takerAddress: this.address.address
|
|
18239
|
+
};
|
|
18240
|
+
logger.verbose("getSecondaryTokenPriceRelativeToMain [1]", params);
|
|
18241
|
+
let avnu = new AvnuWrapper();
|
|
18242
|
+
const quote = await avnu.getQuotes(
|
|
18243
|
+
params.sellTokenAddress,
|
|
18244
|
+
params.buyTokenAddress,
|
|
18245
|
+
params.sellAmount?.toString() || "0",
|
|
18246
|
+
params.takerAddress
|
|
18247
|
+
);
|
|
18248
|
+
if (!quote) {
|
|
18249
|
+
throw new Error("No quotes found to compute secondary token price relative to main token");
|
|
18250
|
+
}
|
|
18251
|
+
const firstQuote = quote;
|
|
18252
|
+
const price = Number(
|
|
18253
|
+
Web3Number.fromWei(firstQuote.buyAmount.toString(), 18).toFixed(
|
|
18254
|
+
6
|
|
18255
|
+
)
|
|
18256
|
+
);
|
|
18257
|
+
logger.verbose("getSecondaryTokenPriceRelativeToMain [2]", price);
|
|
18258
|
+
this.setCache(CACHE_KEY, price);
|
|
18259
|
+
return price;
|
|
18260
|
+
}
|
|
18261
|
+
};
|
|
18262
|
+
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}}.`;
|
|
18263
|
+
var vesuProtocol = {
|
|
18264
|
+
name: "Vesu",
|
|
18265
|
+
logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png"
|
|
18266
|
+
};
|
|
18267
|
+
var endurProtocol = {
|
|
18268
|
+
name: "Endur",
|
|
18269
|
+
logo: "https://app.endur.fi/logo.png"
|
|
18270
|
+
};
|
|
18271
|
+
var _riskFactor3 = [
|
|
18272
|
+
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by CSC" },
|
|
18273
|
+
{ 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." },
|
|
18274
|
+
{ 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" },
|
|
18275
|
+
{ type: "Low Liquidity Risk" /* LOW_LIQUIDITY_RISK */, value: 0.5, weight: 50, reason: "xSTRK can be sometimes illiquid near true price" }
|
|
18276
|
+
];
|
|
18277
|
+
var FAQS = [
|
|
18278
|
+
{
|
|
18279
|
+
question: "What is xSTRK Sensei?",
|
|
18280
|
+
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."
|
|
18281
|
+
},
|
|
18282
|
+
{
|
|
18283
|
+
question: "What is the benefit of using xSTRK Sensei?",
|
|
18284
|
+
answer: "The strategy amplifies your xSTRK exposure and yield through leverage. It also helps you accumulate more Endur points faster."
|
|
18285
|
+
},
|
|
18286
|
+
{
|
|
18287
|
+
question: "What is the maximum leverage possible?",
|
|
18288
|
+
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"
|
|
18289
|
+
},
|
|
18290
|
+
{
|
|
18291
|
+
question: "Isn't 1.1 health factor risky?",
|
|
18292
|
+
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."
|
|
18293
|
+
},
|
|
18294
|
+
{
|
|
18295
|
+
question: "Are there any risks involved?",
|
|
18296
|
+
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."
|
|
18297
|
+
},
|
|
18298
|
+
{
|
|
18299
|
+
question: "Does the position always grow?",
|
|
18300
|
+
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."
|
|
18301
|
+
},
|
|
18302
|
+
{
|
|
18303
|
+
question: "Can I lose money using this strategy?",
|
|
18304
|
+
answer: "Yes. If the xSTRK price drops sharply or becomes illiquid, you may face slippage or loss when trying to exit the looped position."
|
|
18305
|
+
},
|
|
18306
|
+
{
|
|
18307
|
+
question: "What affects the DEX price of xSTRK?",
|
|
18308
|
+
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."
|
|
18309
|
+
},
|
|
18310
|
+
{
|
|
18311
|
+
question: "Why is xSTRK considered illiquid?",
|
|
18312
|
+
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."
|
|
18313
|
+
},
|
|
18314
|
+
{
|
|
18315
|
+
question: "Do I earn Endur points on looped xSTRK?",
|
|
18316
|
+
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."
|
|
18317
|
+
}
|
|
18318
|
+
];
|
|
18319
|
+
var SenseiStrategies = [
|
|
18320
|
+
{
|
|
18321
|
+
name: "xSTRK Sensei",
|
|
18322
|
+
description: highlightTextWithLinks(
|
|
18323
|
+
senseiDescription.replaceAll("{{token1}}", "STRK").replaceAll("{{token2}}", "xSTRK"),
|
|
18324
|
+
[{
|
|
18325
|
+
highlight: "Endur",
|
|
18326
|
+
link: "https://endur.fi"
|
|
18327
|
+
}, {
|
|
18328
|
+
highlight: "Vesu",
|
|
18329
|
+
link: "https://vesu.xyz"
|
|
18330
|
+
}, {
|
|
18331
|
+
highlight: "delta neutral position",
|
|
18332
|
+
link: "https://www.investopedia.com/terms/d/deltaneutral.asp"
|
|
18333
|
+
}]
|
|
18334
|
+
),
|
|
18335
|
+
address: ContractAddr.from(
|
|
18336
|
+
"0x7023a5cadc8a5db80e4f0fde6b330cbd3c17bbbf9cb145cbabd7bd5e6fb7b0b"
|
|
18337
|
+
),
|
|
18338
|
+
launchBlock: 1053811,
|
|
18339
|
+
type: "Other",
|
|
18340
|
+
depositTokens: [
|
|
18341
|
+
Global.getDefaultTokens().find((t) => t.symbol === "STRK")
|
|
18342
|
+
],
|
|
18343
|
+
protocols: [endurProtocol, vesuProtocol],
|
|
18344
|
+
maxTVL: new Web3Number("1500000", 18),
|
|
18345
|
+
risk: {
|
|
18346
|
+
riskFactor: _riskFactor3,
|
|
18347
|
+
netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
|
|
18348
|
+
notARisks: getNoRiskTags(_riskFactor3)
|
|
18349
|
+
},
|
|
18350
|
+
additionalInfo: {
|
|
18351
|
+
mainToken: Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
18352
|
+
secondaryToken: Global.getDefaultTokens().find((t) => t.symbol === "xSTRK"),
|
|
18353
|
+
targetHfBps: 11e3,
|
|
18354
|
+
// 1.1 health factor
|
|
18355
|
+
feeBps: 2e3
|
|
18356
|
+
// 2% fee on profits
|
|
18357
|
+
},
|
|
18358
|
+
faqs: FAQS,
|
|
18359
|
+
contractDetails: [],
|
|
18360
|
+
investmentSteps: [
|
|
18361
|
+
"Swap STRK for xSTRK",
|
|
18362
|
+
"Deposit xSTRK to Vesu's Re7 xSTRK Pool",
|
|
18363
|
+
"Borrow STRK against your xSTRK collateral",
|
|
18364
|
+
"Buy more xSTRK with borrowed STRK",
|
|
18365
|
+
"Repeat the process to loop your position",
|
|
18366
|
+
"Claim DeFi spring (STRK) rewards weekly and reinvest"
|
|
18367
|
+
]
|
|
18368
|
+
}
|
|
18369
|
+
];
|
|
18370
|
+
|
|
16306
18371
|
// src/notifs/telegram.ts
|
|
16307
18372
|
import TelegramBot from "node-telegram-bot-api";
|
|
16308
18373
|
var TelegramNotif = class {
|
|
@@ -16585,6 +18650,8 @@ export {
|
|
|
16585
18650
|
PricerFromApi,
|
|
16586
18651
|
PricerRedis,
|
|
16587
18652
|
RiskType,
|
|
18653
|
+
SenseiStrategies,
|
|
18654
|
+
SenseiVault,
|
|
16588
18655
|
Store,
|
|
16589
18656
|
TelegramNotif,
|
|
16590
18657
|
VesuRebalance,
|
|
@@ -16598,6 +18665,7 @@ export {
|
|
|
16598
18665
|
getNoRiskTags,
|
|
16599
18666
|
getRiskColor,
|
|
16600
18667
|
getRiskExplaination,
|
|
18668
|
+
getTrovesEndpoint,
|
|
16601
18669
|
highlightTextWithLinks,
|
|
16602
18670
|
logger
|
|
16603
18671
|
};
|