@strkfarm/sdk 1.1.17 → 1.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.global.js +2514 -542
- package/dist/index.browser.mjs +2256 -284
- package/dist/index.d.ts +16 -4
- package/dist/index.js +2257 -284
- package/dist/index.mjs +2256 -284
- package/package.json +2 -1
- package/src/dataTypes/_bignumber.ts +29 -11
- package/src/modules/pricer-from-api.ts +1 -1
- package/src/strategies/base-strategy.ts +5 -1
- package/src/strategies/constants.ts +1 -1
- package/src/strategies/ekubo-cl-vault.tsx +45 -0
- package/src/strategies/universal-adapters/adapter-utils.ts +2 -1
- package/src/strategies/universal-adapters/vesu-adapter.ts +63 -28
- package/src/strategies/universal-lst-muliplier-strategy.tsx +65 -24
- package/src/strategies/universal-strategy.tsx +8 -8
package/dist/index.mjs
CHANGED
|
@@ -15,23 +15,27 @@ var _Web3Number = class extends BigNumber {
|
|
|
15
15
|
this.decimals = decimals;
|
|
16
16
|
}
|
|
17
17
|
toWei() {
|
|
18
|
-
return
|
|
18
|
+
return super.mul(10 ** this.decimals).toFixed(0);
|
|
19
19
|
}
|
|
20
20
|
multipliedBy(value) {
|
|
21
21
|
const _value = this.getStandardString(value);
|
|
22
|
-
return this.construct(
|
|
22
|
+
return this.construct(super.mul(_value).toString(), this.decimals);
|
|
23
23
|
}
|
|
24
24
|
dividedBy(value) {
|
|
25
25
|
const _value = this.getStandardString(value);
|
|
26
|
-
return this.construct(
|
|
26
|
+
return this.construct(super.dividedBy(_value).toString(), this.decimals);
|
|
27
27
|
}
|
|
28
28
|
plus(value) {
|
|
29
|
-
const
|
|
30
|
-
|
|
29
|
+
const rawValue = this.getStandardString(value);
|
|
30
|
+
const thisBN = new BigNumber(this.toString());
|
|
31
|
+
const result = thisBN.plus(rawValue);
|
|
32
|
+
return this.construct(result.toString(), this.decimals);
|
|
31
33
|
}
|
|
32
34
|
minus(n, base) {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
+
const rawValue = this.getStandardString(n);
|
|
36
|
+
const thisBN = new BigNumber(this.toString());
|
|
37
|
+
const result = thisBN.minus(rawValue, base);
|
|
38
|
+
return this.construct(result.toString(), this.decimals);
|
|
35
39
|
}
|
|
36
40
|
construct(value, decimals) {
|
|
37
41
|
return new this.constructor(value, decimals);
|
|
@@ -49,10 +53,13 @@ var _Web3Number = class extends BigNumber {
|
|
|
49
53
|
return Math.min(this.decimals, 18);
|
|
50
54
|
}
|
|
51
55
|
getStandardString(value) {
|
|
52
|
-
if (typeof value
|
|
56
|
+
if (typeof value === "string") {
|
|
53
57
|
return value;
|
|
54
58
|
}
|
|
55
|
-
|
|
59
|
+
if (typeof value === "number") {
|
|
60
|
+
return value.toString();
|
|
61
|
+
}
|
|
62
|
+
return BigNumber.prototype.toString.call(value);
|
|
56
63
|
}
|
|
57
64
|
minimum(value) {
|
|
58
65
|
const _value = new BigNumber(value);
|
|
@@ -63,12 +70,10 @@ var _Web3Number = class extends BigNumber {
|
|
|
63
70
|
maximum(value) {
|
|
64
71
|
const _value = new BigNumber(value);
|
|
65
72
|
const _valueMe = new BigNumber(this.toString());
|
|
66
|
-
console.warn(`maximum: _value: ${_value.toString()}, _valueMe: ${_valueMe.toString()}`);
|
|
67
73
|
const answer = _value.greaterThanOrEqualTo(_valueMe) ? _value : _valueMe;
|
|
68
74
|
return this.construct(answer.toString(), this.decimals);
|
|
69
75
|
}
|
|
70
76
|
abs() {
|
|
71
|
-
console.warn(`abs: this: ${this}`);
|
|
72
77
|
return this.construct(Math.abs(this.toNumber()).toFixed(12), this.decimals);
|
|
73
78
|
}
|
|
74
79
|
toI129() {
|
|
@@ -908,7 +913,7 @@ var PricerFromApi = class extends PricerBase {
|
|
|
908
913
|
}
|
|
909
914
|
async getPriceFromMyAPI(tokenSymbol) {
|
|
910
915
|
logger.verbose(`getPrice from redis: ${tokenSymbol}`);
|
|
911
|
-
const endpoint = "https://
|
|
916
|
+
const endpoint = "https://proxy.api.troves.fi";
|
|
912
917
|
const url = `${endpoint}/api/price/${tokenSymbol}`;
|
|
913
918
|
const priceInfoRes = await fetch(url);
|
|
914
919
|
const priceInfo = await priceInfoRes.json();
|
|
@@ -3976,6 +3981,9 @@ var BaseStrategy = class extends CacheClass {
|
|
|
3976
3981
|
async withdrawCall(amountInfo, receiver, owner) {
|
|
3977
3982
|
throw new Error("Not implemented");
|
|
3978
3983
|
}
|
|
3984
|
+
async getVaultPositions() {
|
|
3985
|
+
throw new Error("Not implemented");
|
|
3986
|
+
}
|
|
3979
3987
|
};
|
|
3980
3988
|
|
|
3981
3989
|
// src/node/headless.browser.ts
|
|
@@ -3995,7 +4003,7 @@ var COMMON_CONTRACTS = [{
|
|
|
3995
4003
|
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/blob/main/src/components/accessControl.cairo"
|
|
3996
4004
|
}];
|
|
3997
4005
|
var ENDPOINTS = {
|
|
3998
|
-
VESU_BASE: "https://
|
|
4006
|
+
VESU_BASE: "https://proxy.api.troves.fi/vesu-staging"
|
|
3999
4007
|
};
|
|
4000
4008
|
|
|
4001
4009
|
// src/modules/harvests.ts
|
|
@@ -15718,6 +15726,49 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
15718
15726
|
const tick = Math.floor(value / tickSpacing) * tickSpacing;
|
|
15719
15727
|
return this.tickToi129(tick);
|
|
15720
15728
|
}
|
|
15729
|
+
async getVaultPositions() {
|
|
15730
|
+
const tvlInfo = await this.getTVL();
|
|
15731
|
+
const fees = await this.getUncollectedFees();
|
|
15732
|
+
const unusedBalance = await this.unusedBalances();
|
|
15733
|
+
return [
|
|
15734
|
+
{
|
|
15735
|
+
amount: tvlInfo.token0.amount,
|
|
15736
|
+
usdValue: tvlInfo.token0.usdValue,
|
|
15737
|
+
token: tvlInfo.token0.tokenInfo,
|
|
15738
|
+
remarks: `Liquidity in Ekubo`
|
|
15739
|
+
},
|
|
15740
|
+
{
|
|
15741
|
+
amount: fees.token0.amount,
|
|
15742
|
+
usdValue: fees.token0.usdValue,
|
|
15743
|
+
token: fees.token0.tokenInfo,
|
|
15744
|
+
remarks: "Uncollected Fees in Ekubo"
|
|
15745
|
+
},
|
|
15746
|
+
{
|
|
15747
|
+
amount: unusedBalance.token0.amount,
|
|
15748
|
+
usdValue: unusedBalance.token0.usdValue,
|
|
15749
|
+
token: unusedBalance.token0.tokenInfo,
|
|
15750
|
+
remarks: "Unused Balance in the Vault"
|
|
15751
|
+
},
|
|
15752
|
+
{
|
|
15753
|
+
amount: tvlInfo.token1.amount,
|
|
15754
|
+
usdValue: tvlInfo.token1.usdValue,
|
|
15755
|
+
token: tvlInfo.token1.tokenInfo,
|
|
15756
|
+
remarks: "Liquidity in Ekubo"
|
|
15757
|
+
},
|
|
15758
|
+
{
|
|
15759
|
+
amount: fees.token1.amount,
|
|
15760
|
+
usdValue: fees.token1.usdValue,
|
|
15761
|
+
token: fees.token1.tokenInfo,
|
|
15762
|
+
remarks: "Uncollected Fees in Ekubo"
|
|
15763
|
+
},
|
|
15764
|
+
{
|
|
15765
|
+
amount: unusedBalance.token1.amount,
|
|
15766
|
+
usdValue: unusedBalance.token1.usdValue,
|
|
15767
|
+
token: unusedBalance.token1.tokenInfo,
|
|
15768
|
+
remarks: "Unused Balance in the Vault"
|
|
15769
|
+
}
|
|
15770
|
+
];
|
|
15771
|
+
}
|
|
15721
15772
|
async getPoolKey(blockIdentifier = "latest") {
|
|
15722
15773
|
if (this.poolKey) {
|
|
15723
15774
|
return this.poolKey;
|
|
@@ -18879,9 +18930,10 @@ import { hash, num as num6, shortString } from "starknet";
|
|
|
18879
18930
|
|
|
18880
18931
|
// src/strategies/universal-adapters/adapter-utils.ts
|
|
18881
18932
|
var SIMPLE_SANITIZER = ContractAddr.from("0x5a2e3ceb3da368b983a8717898427ab7b6daf04014b70f321e777f9aad940b4");
|
|
18882
|
-
var SIMPLE_SANITIZER_V2 = ContractAddr.from("
|
|
18933
|
+
var SIMPLE_SANITIZER_V2 = ContractAddr.from("0x7b6f98311af8aa425278570e62abf523e6462eaa01a38c1feab9b2f416492e2");
|
|
18883
18934
|
var PRICE_ROUTER = ContractAddr.from("0x05e83Fa38D791d2dba8E6f487758A9687FfEe191A6Cf8a6c5761ab0a110DB837");
|
|
18884
18935
|
var AVNU_MIDDLEWARE = ContractAddr.from("0x4a7972ed3f5d1e74a6d6c4a8f467666953d081c8f2270390cc169d50d17cb0d");
|
|
18936
|
+
var VESU_SINGLETON = ContractAddr.from("0x000d8d6dfec4d33bfb6895de9f3852143a17c6f92fd2a21da3d6924d34870160");
|
|
18885
18937
|
function toBigInt(value) {
|
|
18886
18938
|
if (typeof value === "string") {
|
|
18887
18939
|
return BigInt(value);
|
|
@@ -21816,248 +21868,2112 @@ var vesu_multiple_abi_default = [
|
|
|
21816
21868
|
}
|
|
21817
21869
|
];
|
|
21818
21870
|
|
|
21819
|
-
// src/
|
|
21820
|
-
var
|
|
21821
|
-
|
|
21822
|
-
|
|
21823
|
-
|
|
21824
|
-
|
|
21825
|
-
|
|
21826
|
-
|
|
21827
|
-
|
|
21828
|
-
|
|
21829
|
-
|
|
21830
|
-
|
|
21831
|
-
|
|
21832
|
-
|
|
21833
|
-
|
|
21834
|
-
|
|
21835
|
-
|
|
21836
|
-
|
|
21837
|
-
debt_asset: _params2.debt_asset.toBigInt(),
|
|
21838
|
-
user: _params2.user.toBigInt(),
|
|
21839
|
-
add_margin: BigInt(_params2.add_margin.toWei()),
|
|
21840
|
-
margin_swap: _params2.margin_swap.map((swap) => ({
|
|
21841
|
-
route: swap.route.map((route) => ({
|
|
21842
|
-
pool_key: {
|
|
21843
|
-
token0: route.pool_key.token0.toBigInt(),
|
|
21844
|
-
token1: route.pool_key.token1.toBigInt(),
|
|
21845
|
-
fee: route.pool_key.fee,
|
|
21846
|
-
tick_spacing: route.pool_key.tick_spacing,
|
|
21847
|
-
extension: BigInt(num8.hexToDecimalString(route.pool_key.extension))
|
|
21848
|
-
},
|
|
21849
|
-
sqrt_ratio_limit: uint2567.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
21850
|
-
skip_ahead: BigInt(100)
|
|
21851
|
-
})),
|
|
21852
|
-
token_amount: {
|
|
21853
|
-
token: swap.token_amount.token.toBigInt(),
|
|
21854
|
-
amount: swap.token_amount.amount.toI129()
|
|
21855
|
-
}
|
|
21856
|
-
})),
|
|
21857
|
-
margin_swap_limit_amount: BigInt(_params2.margin_swap_limit_amount.toWei()),
|
|
21858
|
-
lever_swap: _params2.lever_swap.map((swap) => ({
|
|
21859
|
-
route: swap.route.map((route) => ({
|
|
21860
|
-
pool_key: {
|
|
21861
|
-
token0: route.pool_key.token0.toBigInt(),
|
|
21862
|
-
token1: route.pool_key.token1.toBigInt(),
|
|
21863
|
-
fee: route.pool_key.fee,
|
|
21864
|
-
tick_spacing: route.pool_key.tick_spacing,
|
|
21865
|
-
extension: BigInt(num8.hexToDecimalString(route.pool_key.extension))
|
|
21866
|
-
},
|
|
21867
|
-
sqrt_ratio_limit: uint2567.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
21868
|
-
skip_ahead: BigInt(100)
|
|
21869
|
-
})),
|
|
21870
|
-
token_amount: {
|
|
21871
|
-
token: swap.token_amount.token.toBigInt(),
|
|
21872
|
-
amount: swap.token_amount.amount.toI129()
|
|
21873
|
-
}
|
|
21874
|
-
})),
|
|
21875
|
-
lever_swap_limit_amount: BigInt(_params2.lever_swap_limit_amount.toWei())
|
|
21876
|
-
} })
|
|
21877
|
-
};
|
|
21878
|
-
}
|
|
21879
|
-
const _params = params;
|
|
21880
|
-
return {
|
|
21881
|
-
action: new CairoCustomEnum2({ DecreaseLever: {
|
|
21882
|
-
pool_id: _params.pool_id.toBigInt(),
|
|
21883
|
-
collateral_asset: _params.collateral_asset.toBigInt(),
|
|
21884
|
-
debt_asset: _params.debt_asset.toBigInt(),
|
|
21885
|
-
user: _params.user.toBigInt(),
|
|
21886
|
-
sub_margin: BigInt(_params.sub_margin.toWei()),
|
|
21887
|
-
recipient: _params.recipient.toBigInt(),
|
|
21888
|
-
lever_swap: _params.lever_swap.map((swap) => ({
|
|
21889
|
-
route: swap.route.map((route) => ({
|
|
21890
|
-
pool_key: {
|
|
21891
|
-
token0: route.pool_key.token0.toBigInt(),
|
|
21892
|
-
token1: route.pool_key.token1.toBigInt(),
|
|
21893
|
-
fee: route.pool_key.fee,
|
|
21894
|
-
tick_spacing: route.pool_key.tick_spacing,
|
|
21895
|
-
extension: ContractAddr.from(route.pool_key.extension).toBigInt()
|
|
21896
|
-
},
|
|
21897
|
-
sqrt_ratio_limit: uint2567.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
21898
|
-
skip_ahead: BigInt(route.skip_ahead.toWei())
|
|
21899
|
-
})),
|
|
21900
|
-
token_amount: {
|
|
21901
|
-
token: swap.token_amount.token.toBigInt(),
|
|
21902
|
-
amount: swap.token_amount.amount.toI129()
|
|
21903
|
-
}
|
|
21904
|
-
})),
|
|
21905
|
-
lever_swap_limit_amount: BigInt(_params.lever_swap_limit_amount.toWei()),
|
|
21906
|
-
lever_swap_weights: _params.lever_swap_weights.map((weight) => BigInt(weight.toWei())),
|
|
21907
|
-
withdraw_swap: _params.withdraw_swap.map((swap) => ({
|
|
21908
|
-
route: swap.route.map((route) => ({
|
|
21909
|
-
pool_key: {
|
|
21910
|
-
token0: route.pool_key.token0.toBigInt(),
|
|
21911
|
-
token1: route.pool_key.token1.toBigInt(),
|
|
21912
|
-
fee: route.pool_key.fee,
|
|
21913
|
-
tick_spacing: route.pool_key.tick_spacing,
|
|
21914
|
-
extension: ContractAddr.from(route.pool_key.extension).toBigInt()
|
|
21915
|
-
},
|
|
21916
|
-
sqrt_ratio_limit: uint2567.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
21917
|
-
skip_ahead: BigInt(route.skip_ahead.toWei())
|
|
21918
|
-
})),
|
|
21919
|
-
token_amount: {
|
|
21920
|
-
token: swap.token_amount.token.toBigInt(),
|
|
21921
|
-
amount: swap.token_amount.amount.toI129()
|
|
21922
|
-
}
|
|
21923
|
-
})),
|
|
21924
|
-
withdraw_swap_limit_amount: BigInt(_params.withdraw_swap_limit_amount.toWei()),
|
|
21925
|
-
withdraw_swap_weights: _params.withdraw_swap_weights.map((weight) => BigInt(weight.toWei())),
|
|
21926
|
-
close_position: _params.close_position
|
|
21927
|
-
} })
|
|
21928
|
-
};
|
|
21929
|
-
}
|
|
21930
|
-
var VesuPools = {
|
|
21931
|
-
Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
|
|
21932
|
-
Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161")
|
|
21933
|
-
};
|
|
21934
|
-
var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
21935
|
-
constructor(config) {
|
|
21936
|
-
super();
|
|
21937
|
-
this.VESU_SINGLETON = ContractAddr.from("0x000d8d6dfec4d33bfb6895de9f3852143a17c6f92fd2a21da3d6924d34870160");
|
|
21938
|
-
this.VESU_MULTIPLY = ContractAddr.from("0x3630f1f8e5b8f5c4c4ae9b6620f8a570ae55cddebc0276c37550e7c118edf67");
|
|
21939
|
-
this.getModifyPosition = () => {
|
|
21940
|
-
const positionData = [0n];
|
|
21941
|
-
const packedArguments = [
|
|
21942
|
-
toBigInt(this.config.poolId.toString()),
|
|
21943
|
-
// pool id
|
|
21944
|
-
toBigInt(this.config.collateral.address.toString()),
|
|
21945
|
-
// collateral
|
|
21946
|
-
toBigInt(this.config.debt.address.toString()),
|
|
21947
|
-
// debt
|
|
21948
|
-
toBigInt(this.config.vaultAllocator.toString()),
|
|
21949
|
-
// vault allocator
|
|
21950
|
-
toBigInt(positionData.length),
|
|
21951
|
-
...positionData
|
|
21952
|
-
];
|
|
21953
|
-
const output = this.constructSimpleLeafData({
|
|
21954
|
-
id: this.config.id,
|
|
21955
|
-
target: this.VESU_SINGLETON,
|
|
21956
|
-
method: "modify_position",
|
|
21957
|
-
packedArguments
|
|
21958
|
-
});
|
|
21959
|
-
return { leaf: output, callConstructor: this.getModifyPositionCall.bind(this) };
|
|
21960
|
-
};
|
|
21961
|
-
this.getModifyPositionCall = (params) => {
|
|
21962
|
-
const _collateral = {
|
|
21963
|
-
amount_type: this.formatAmountTypeEnum(params.collateralAmount.amount_type),
|
|
21964
|
-
denomination: this.formatAmountDenominationEnum(params.collateralAmount.denomination),
|
|
21965
|
-
value: {
|
|
21966
|
-
abs: uint2567.bnToUint256(params.collateralAmount.value.abs.toWei()),
|
|
21967
|
-
is_negative: params.collateralAmount.value.abs.isZero() ? false : params.collateralAmount.value.is_negative
|
|
21968
|
-
}
|
|
21969
|
-
};
|
|
21970
|
-
logger.verbose(`VesuAdapter::ConstructingModify::Collateral::${JSON.stringify(_collateral)}`);
|
|
21971
|
-
const _debt = {
|
|
21972
|
-
amount_type: this.formatAmountTypeEnum(params.debtAmount.amount_type),
|
|
21973
|
-
denomination: this.formatAmountDenominationEnum(params.debtAmount.denomination),
|
|
21974
|
-
value: {
|
|
21975
|
-
abs: uint2567.bnToUint256(params.debtAmount.value.abs.toWei()),
|
|
21976
|
-
is_negative: params.debtAmount.value.abs.isZero() ? false : params.debtAmount.value.is_negative
|
|
21977
|
-
}
|
|
21978
|
-
};
|
|
21979
|
-
logger.verbose(`VesuAdapter::ConstructingModify::Debt::${JSON.stringify(_debt)}`);
|
|
21980
|
-
const singletonContract = new Contract8({ abi: vesu_singleton_abi_default, address: this.VESU_SINGLETON.toString(), providerOrAccount: new RpcProvider4({ nodeUrl: "" }) });
|
|
21981
|
-
const call = singletonContract.populate("modify_position", {
|
|
21982
|
-
params: {
|
|
21983
|
-
pool_id: this.config.poolId.toBigInt(),
|
|
21984
|
-
collateral_asset: this.config.collateral.address.toBigInt(),
|
|
21985
|
-
debt_asset: this.config.debt.address.toBigInt(),
|
|
21986
|
-
user: this.config.vaultAllocator.toBigInt(),
|
|
21987
|
-
collateral: _collateral,
|
|
21988
|
-
debt: _debt,
|
|
21989
|
-
data: [0]
|
|
21990
|
-
}
|
|
21991
|
-
});
|
|
21992
|
-
return {
|
|
21993
|
-
sanitizer: SIMPLE_SANITIZER,
|
|
21994
|
-
call: {
|
|
21995
|
-
contractAddress: this.VESU_SINGLETON,
|
|
21996
|
-
selector: hash3.getSelectorFromName("modify_position"),
|
|
21997
|
-
calldata: [
|
|
21998
|
-
...call.calldata
|
|
21999
|
-
]
|
|
22000
|
-
}
|
|
22001
|
-
};
|
|
22002
|
-
};
|
|
22003
|
-
this.getMultiplyAdapter = () => {
|
|
22004
|
-
const packedArguments = [
|
|
22005
|
-
toBigInt(this.config.poolId.toString()),
|
|
22006
|
-
// pool id
|
|
22007
|
-
toBigInt(this.config.collateral.address.toString()),
|
|
22008
|
-
// collateral
|
|
22009
|
-
toBigInt(this.config.debt.address.toString()),
|
|
22010
|
-
// debt
|
|
22011
|
-
toBigInt(this.config.vaultAllocator.toString())
|
|
22012
|
-
// vault allocator
|
|
22013
|
-
];
|
|
22014
|
-
const output = this.constructSimpleLeafData({
|
|
22015
|
-
id: this.config.id,
|
|
22016
|
-
target: this.VESU_MULTIPLY,
|
|
22017
|
-
method: "modify_lever",
|
|
22018
|
-
packedArguments
|
|
22019
|
-
}, SIMPLE_SANITIZER_V2);
|
|
22020
|
-
return { leaf: output, callConstructor: this.getMultiplyCall.bind(this) };
|
|
22021
|
-
};
|
|
22022
|
-
this.getMultiplyCall = (params) => {
|
|
22023
|
-
const isIncrease = params.isIncrease;
|
|
22024
|
-
const multiplyParams = isIncrease ? params.increaseParams : params.decreaseParams;
|
|
22025
|
-
if (!multiplyParams) {
|
|
22026
|
-
throw new Error("Multiply params are not provided");
|
|
21871
|
+
// src/data/vesu-pool-v2.abi.json
|
|
21872
|
+
var vesu_pool_v2_abi_default = [
|
|
21873
|
+
{
|
|
21874
|
+
type: "impl",
|
|
21875
|
+
name: "PoolImpl",
|
|
21876
|
+
interface_name: "vesu::pool::IPool"
|
|
21877
|
+
},
|
|
21878
|
+
{
|
|
21879
|
+
type: "struct",
|
|
21880
|
+
name: "core::integer::u256",
|
|
21881
|
+
members: [
|
|
21882
|
+
{
|
|
21883
|
+
name: "low",
|
|
21884
|
+
type: "core::integer::u128"
|
|
21885
|
+
},
|
|
21886
|
+
{
|
|
21887
|
+
name: "high",
|
|
21888
|
+
type: "core::integer::u128"
|
|
22027
21889
|
}
|
|
22028
|
-
|
|
22029
|
-
|
|
22030
|
-
|
|
22031
|
-
|
|
22032
|
-
|
|
22033
|
-
|
|
22034
|
-
|
|
22035
|
-
|
|
22036
|
-
|
|
22037
|
-
|
|
22038
|
-
|
|
22039
|
-
|
|
22040
|
-
|
|
22041
|
-
|
|
22042
|
-
|
|
22043
|
-
|
|
22044
|
-
|
|
22045
|
-
|
|
22046
|
-
|
|
22047
|
-
|
|
22048
|
-
|
|
21890
|
+
]
|
|
21891
|
+
},
|
|
21892
|
+
{
|
|
21893
|
+
type: "enum",
|
|
21894
|
+
name: "core::bool",
|
|
21895
|
+
variants: [
|
|
21896
|
+
{
|
|
21897
|
+
name: "False",
|
|
21898
|
+
type: "()"
|
|
21899
|
+
},
|
|
21900
|
+
{
|
|
21901
|
+
name: "True",
|
|
21902
|
+
type: "()"
|
|
21903
|
+
}
|
|
21904
|
+
]
|
|
21905
|
+
},
|
|
21906
|
+
{
|
|
21907
|
+
type: "struct",
|
|
21908
|
+
name: "vesu::data_model::AssetConfig",
|
|
21909
|
+
members: [
|
|
21910
|
+
{
|
|
21911
|
+
name: "total_collateral_shares",
|
|
21912
|
+
type: "core::integer::u256"
|
|
21913
|
+
},
|
|
21914
|
+
{
|
|
21915
|
+
name: "total_nominal_debt",
|
|
21916
|
+
type: "core::integer::u256"
|
|
21917
|
+
},
|
|
21918
|
+
{
|
|
21919
|
+
name: "reserve",
|
|
21920
|
+
type: "core::integer::u256"
|
|
21921
|
+
},
|
|
21922
|
+
{
|
|
21923
|
+
name: "max_utilization",
|
|
21924
|
+
type: "core::integer::u256"
|
|
21925
|
+
},
|
|
21926
|
+
{
|
|
21927
|
+
name: "floor",
|
|
21928
|
+
type: "core::integer::u256"
|
|
21929
|
+
},
|
|
21930
|
+
{
|
|
21931
|
+
name: "scale",
|
|
21932
|
+
type: "core::integer::u256"
|
|
21933
|
+
},
|
|
21934
|
+
{
|
|
21935
|
+
name: "is_legacy",
|
|
21936
|
+
type: "core::bool"
|
|
21937
|
+
},
|
|
21938
|
+
{
|
|
21939
|
+
name: "last_updated",
|
|
21940
|
+
type: "core::integer::u64"
|
|
21941
|
+
},
|
|
21942
|
+
{
|
|
21943
|
+
name: "last_rate_accumulator",
|
|
21944
|
+
type: "core::integer::u256"
|
|
21945
|
+
},
|
|
21946
|
+
{
|
|
21947
|
+
name: "last_full_utilization_rate",
|
|
21948
|
+
type: "core::integer::u256"
|
|
21949
|
+
},
|
|
21950
|
+
{
|
|
21951
|
+
name: "fee_rate",
|
|
21952
|
+
type: "core::integer::u256"
|
|
21953
|
+
},
|
|
21954
|
+
{
|
|
21955
|
+
name: "fee_shares",
|
|
21956
|
+
type: "core::integer::u256"
|
|
21957
|
+
}
|
|
21958
|
+
]
|
|
21959
|
+
},
|
|
21960
|
+
{
|
|
21961
|
+
type: "struct",
|
|
21962
|
+
name: "vesu::data_model::AssetPrice",
|
|
21963
|
+
members: [
|
|
21964
|
+
{
|
|
21965
|
+
name: "value",
|
|
21966
|
+
type: "core::integer::u256"
|
|
21967
|
+
},
|
|
21968
|
+
{
|
|
21969
|
+
name: "is_valid",
|
|
21970
|
+
type: "core::bool"
|
|
21971
|
+
}
|
|
21972
|
+
]
|
|
21973
|
+
},
|
|
21974
|
+
{
|
|
21975
|
+
type: "struct",
|
|
21976
|
+
name: "vesu::data_model::Position",
|
|
21977
|
+
members: [
|
|
21978
|
+
{
|
|
21979
|
+
name: "collateral_shares",
|
|
21980
|
+
type: "core::integer::u256"
|
|
21981
|
+
},
|
|
21982
|
+
{
|
|
21983
|
+
name: "nominal_debt",
|
|
21984
|
+
type: "core::integer::u256"
|
|
21985
|
+
}
|
|
21986
|
+
]
|
|
21987
|
+
},
|
|
21988
|
+
{
|
|
21989
|
+
type: "struct",
|
|
21990
|
+
name: "vesu::data_model::Context",
|
|
21991
|
+
members: [
|
|
21992
|
+
{
|
|
21993
|
+
name: "collateral_asset",
|
|
21994
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
21995
|
+
},
|
|
21996
|
+
{
|
|
21997
|
+
name: "debt_asset",
|
|
21998
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
21999
|
+
},
|
|
22000
|
+
{
|
|
22001
|
+
name: "collateral_asset_config",
|
|
22002
|
+
type: "vesu::data_model::AssetConfig"
|
|
22003
|
+
},
|
|
22004
|
+
{
|
|
22005
|
+
name: "debt_asset_config",
|
|
22006
|
+
type: "vesu::data_model::AssetConfig"
|
|
22007
|
+
},
|
|
22008
|
+
{
|
|
22009
|
+
name: "collateral_asset_price",
|
|
22010
|
+
type: "vesu::data_model::AssetPrice"
|
|
22011
|
+
},
|
|
22012
|
+
{
|
|
22013
|
+
name: "debt_asset_price",
|
|
22014
|
+
type: "vesu::data_model::AssetPrice"
|
|
22015
|
+
},
|
|
22016
|
+
{
|
|
22017
|
+
name: "max_ltv",
|
|
22018
|
+
type: "core::integer::u64"
|
|
22019
|
+
},
|
|
22020
|
+
{
|
|
22021
|
+
name: "user",
|
|
22022
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22023
|
+
},
|
|
22024
|
+
{
|
|
22025
|
+
name: "position",
|
|
22026
|
+
type: "vesu::data_model::Position"
|
|
22027
|
+
}
|
|
22028
|
+
]
|
|
22029
|
+
},
|
|
22030
|
+
{
|
|
22031
|
+
type: "struct",
|
|
22032
|
+
name: "alexandria_math::i257::i257",
|
|
22033
|
+
members: [
|
|
22034
|
+
{
|
|
22035
|
+
name: "abs",
|
|
22036
|
+
type: "core::integer::u256"
|
|
22037
|
+
},
|
|
22038
|
+
{
|
|
22039
|
+
name: "is_negative",
|
|
22040
|
+
type: "core::bool"
|
|
22041
|
+
}
|
|
22042
|
+
]
|
|
22043
|
+
},
|
|
22044
|
+
{
|
|
22045
|
+
type: "enum",
|
|
22046
|
+
name: "vesu::data_model::AmountDenomination",
|
|
22047
|
+
variants: [
|
|
22048
|
+
{
|
|
22049
|
+
name: "Native",
|
|
22050
|
+
type: "()"
|
|
22051
|
+
},
|
|
22052
|
+
{
|
|
22053
|
+
name: "Assets",
|
|
22054
|
+
type: "()"
|
|
22055
|
+
}
|
|
22056
|
+
]
|
|
22057
|
+
},
|
|
22058
|
+
{
|
|
22059
|
+
type: "struct",
|
|
22060
|
+
name: "vesu::data_model::Amount",
|
|
22061
|
+
members: [
|
|
22062
|
+
{
|
|
22063
|
+
name: "denomination",
|
|
22064
|
+
type: "vesu::data_model::AmountDenomination"
|
|
22065
|
+
},
|
|
22066
|
+
{
|
|
22067
|
+
name: "value",
|
|
22068
|
+
type: "alexandria_math::i257::i257"
|
|
22069
|
+
}
|
|
22070
|
+
]
|
|
22071
|
+
},
|
|
22072
|
+
{
|
|
22073
|
+
type: "struct",
|
|
22074
|
+
name: "vesu::data_model::ModifyPositionParams",
|
|
22075
|
+
members: [
|
|
22076
|
+
{
|
|
22077
|
+
name: "collateral_asset",
|
|
22078
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22079
|
+
},
|
|
22080
|
+
{
|
|
22081
|
+
name: "debt_asset",
|
|
22082
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22083
|
+
},
|
|
22084
|
+
{
|
|
22085
|
+
name: "user",
|
|
22086
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22087
|
+
},
|
|
22088
|
+
{
|
|
22089
|
+
name: "collateral",
|
|
22090
|
+
type: "vesu::data_model::Amount"
|
|
22091
|
+
},
|
|
22092
|
+
{
|
|
22093
|
+
name: "debt",
|
|
22094
|
+
type: "vesu::data_model::Amount"
|
|
22095
|
+
}
|
|
22096
|
+
]
|
|
22097
|
+
},
|
|
22098
|
+
{
|
|
22099
|
+
type: "struct",
|
|
22100
|
+
name: "vesu::data_model::UpdatePositionResponse",
|
|
22101
|
+
members: [
|
|
22102
|
+
{
|
|
22103
|
+
name: "collateral_delta",
|
|
22104
|
+
type: "alexandria_math::i257::i257"
|
|
22105
|
+
},
|
|
22106
|
+
{
|
|
22107
|
+
name: "collateral_shares_delta",
|
|
22108
|
+
type: "alexandria_math::i257::i257"
|
|
22109
|
+
},
|
|
22110
|
+
{
|
|
22111
|
+
name: "debt_delta",
|
|
22112
|
+
type: "alexandria_math::i257::i257"
|
|
22113
|
+
},
|
|
22114
|
+
{
|
|
22115
|
+
name: "nominal_debt_delta",
|
|
22116
|
+
type: "alexandria_math::i257::i257"
|
|
22117
|
+
},
|
|
22118
|
+
{
|
|
22119
|
+
name: "bad_debt",
|
|
22120
|
+
type: "core::integer::u256"
|
|
22121
|
+
}
|
|
22122
|
+
]
|
|
22123
|
+
},
|
|
22124
|
+
{
|
|
22125
|
+
type: "struct",
|
|
22126
|
+
name: "vesu::data_model::LiquidatePositionParams",
|
|
22127
|
+
members: [
|
|
22128
|
+
{
|
|
22129
|
+
name: "collateral_asset",
|
|
22130
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22131
|
+
},
|
|
22132
|
+
{
|
|
22133
|
+
name: "debt_asset",
|
|
22134
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22135
|
+
},
|
|
22136
|
+
{
|
|
22137
|
+
name: "user",
|
|
22138
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22139
|
+
},
|
|
22140
|
+
{
|
|
22141
|
+
name: "min_collateral_to_receive",
|
|
22142
|
+
type: "core::integer::u256"
|
|
22143
|
+
},
|
|
22144
|
+
{
|
|
22145
|
+
name: "debt_to_repay",
|
|
22146
|
+
type: "core::integer::u256"
|
|
22147
|
+
}
|
|
22148
|
+
]
|
|
22149
|
+
},
|
|
22150
|
+
{
|
|
22151
|
+
type: "struct",
|
|
22152
|
+
name: "core::array::Span::<core::felt252>",
|
|
22153
|
+
members: [
|
|
22154
|
+
{
|
|
22155
|
+
name: "snapshot",
|
|
22156
|
+
type: "@core::array::Array::<core::felt252>"
|
|
22157
|
+
}
|
|
22158
|
+
]
|
|
22159
|
+
},
|
|
22160
|
+
{
|
|
22161
|
+
type: "struct",
|
|
22162
|
+
name: "vesu::data_model::AssetParams",
|
|
22163
|
+
members: [
|
|
22164
|
+
{
|
|
22165
|
+
name: "asset",
|
|
22166
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22167
|
+
},
|
|
22168
|
+
{
|
|
22169
|
+
name: "floor",
|
|
22170
|
+
type: "core::integer::u256"
|
|
22171
|
+
},
|
|
22172
|
+
{
|
|
22173
|
+
name: "initial_full_utilization_rate",
|
|
22174
|
+
type: "core::integer::u256"
|
|
22175
|
+
},
|
|
22176
|
+
{
|
|
22177
|
+
name: "max_utilization",
|
|
22178
|
+
type: "core::integer::u256"
|
|
22179
|
+
},
|
|
22180
|
+
{
|
|
22181
|
+
name: "is_legacy",
|
|
22182
|
+
type: "core::bool"
|
|
22183
|
+
},
|
|
22184
|
+
{
|
|
22185
|
+
name: "fee_rate",
|
|
22186
|
+
type: "core::integer::u256"
|
|
22187
|
+
}
|
|
22188
|
+
]
|
|
22189
|
+
},
|
|
22190
|
+
{
|
|
22191
|
+
type: "struct",
|
|
22192
|
+
name: "vesu::interest_rate_model::InterestRateConfig",
|
|
22193
|
+
members: [
|
|
22194
|
+
{
|
|
22195
|
+
name: "min_target_utilization",
|
|
22196
|
+
type: "core::integer::u256"
|
|
22197
|
+
},
|
|
22198
|
+
{
|
|
22199
|
+
name: "max_target_utilization",
|
|
22200
|
+
type: "core::integer::u256"
|
|
22201
|
+
},
|
|
22202
|
+
{
|
|
22203
|
+
name: "target_utilization",
|
|
22204
|
+
type: "core::integer::u256"
|
|
22205
|
+
},
|
|
22206
|
+
{
|
|
22207
|
+
name: "min_full_utilization_rate",
|
|
22208
|
+
type: "core::integer::u256"
|
|
22209
|
+
},
|
|
22210
|
+
{
|
|
22211
|
+
name: "max_full_utilization_rate",
|
|
22212
|
+
type: "core::integer::u256"
|
|
22213
|
+
},
|
|
22214
|
+
{
|
|
22215
|
+
name: "zero_utilization_rate",
|
|
22216
|
+
type: "core::integer::u256"
|
|
22217
|
+
},
|
|
22218
|
+
{
|
|
22219
|
+
name: "rate_half_life",
|
|
22220
|
+
type: "core::integer::u256"
|
|
22221
|
+
},
|
|
22222
|
+
{
|
|
22223
|
+
name: "target_rate_percent",
|
|
22224
|
+
type: "core::integer::u256"
|
|
22225
|
+
}
|
|
22226
|
+
]
|
|
22227
|
+
},
|
|
22228
|
+
{
|
|
22229
|
+
type: "struct",
|
|
22230
|
+
name: "vesu::data_model::Pair",
|
|
22231
|
+
members: [
|
|
22232
|
+
{
|
|
22233
|
+
name: "total_collateral_shares",
|
|
22234
|
+
type: "core::integer::u256"
|
|
22235
|
+
},
|
|
22236
|
+
{
|
|
22237
|
+
name: "total_nominal_debt",
|
|
22238
|
+
type: "core::integer::u256"
|
|
22239
|
+
}
|
|
22240
|
+
]
|
|
22241
|
+
},
|
|
22242
|
+
{
|
|
22243
|
+
type: "struct",
|
|
22244
|
+
name: "vesu::data_model::PairConfig",
|
|
22245
|
+
members: [
|
|
22246
|
+
{
|
|
22247
|
+
name: "max_ltv",
|
|
22248
|
+
type: "core::integer::u64"
|
|
22249
|
+
},
|
|
22250
|
+
{
|
|
22251
|
+
name: "liquidation_factor",
|
|
22252
|
+
type: "core::integer::u64"
|
|
22253
|
+
},
|
|
22254
|
+
{
|
|
22255
|
+
name: "debt_cap",
|
|
22256
|
+
type: "core::integer::u128"
|
|
22257
|
+
}
|
|
22258
|
+
]
|
|
22259
|
+
},
|
|
22260
|
+
{
|
|
22261
|
+
type: "enum",
|
|
22262
|
+
name: "core::option::Option::<(core::starknet::class_hash::ClassHash, core::array::Span::<core::felt252>)>",
|
|
22263
|
+
variants: [
|
|
22264
|
+
{
|
|
22265
|
+
name: "Some",
|
|
22266
|
+
type: "(core::starknet::class_hash::ClassHash, core::array::Span::<core::felt252>)"
|
|
22267
|
+
},
|
|
22268
|
+
{
|
|
22269
|
+
name: "None",
|
|
22270
|
+
type: "()"
|
|
22271
|
+
}
|
|
22272
|
+
]
|
|
22273
|
+
},
|
|
22274
|
+
{
|
|
22275
|
+
type: "interface",
|
|
22276
|
+
name: "vesu::pool::IPool",
|
|
22277
|
+
items: [
|
|
22278
|
+
{
|
|
22279
|
+
type: "function",
|
|
22280
|
+
name: "pool_name",
|
|
22281
|
+
inputs: [],
|
|
22282
|
+
outputs: [
|
|
22283
|
+
{
|
|
22284
|
+
type: "core::felt252"
|
|
22285
|
+
}
|
|
22286
|
+
],
|
|
22287
|
+
state_mutability: "view"
|
|
22288
|
+
},
|
|
22289
|
+
{
|
|
22290
|
+
type: "function",
|
|
22291
|
+
name: "context",
|
|
22292
|
+
inputs: [
|
|
22293
|
+
{
|
|
22294
|
+
name: "collateral_asset",
|
|
22295
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22296
|
+
},
|
|
22297
|
+
{
|
|
22298
|
+
name: "debt_asset",
|
|
22299
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22300
|
+
},
|
|
22301
|
+
{
|
|
22302
|
+
name: "user",
|
|
22303
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22304
|
+
}
|
|
22305
|
+
],
|
|
22306
|
+
outputs: [
|
|
22307
|
+
{
|
|
22308
|
+
type: "vesu::data_model::Context"
|
|
22309
|
+
}
|
|
22310
|
+
],
|
|
22311
|
+
state_mutability: "view"
|
|
22312
|
+
},
|
|
22313
|
+
{
|
|
22314
|
+
type: "function",
|
|
22315
|
+
name: "position",
|
|
22316
|
+
inputs: [
|
|
22317
|
+
{
|
|
22318
|
+
name: "collateral_asset",
|
|
22319
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22320
|
+
},
|
|
22321
|
+
{
|
|
22322
|
+
name: "debt_asset",
|
|
22323
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22324
|
+
},
|
|
22325
|
+
{
|
|
22326
|
+
name: "user",
|
|
22327
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22328
|
+
}
|
|
22329
|
+
],
|
|
22330
|
+
outputs: [
|
|
22331
|
+
{
|
|
22332
|
+
type: "(vesu::data_model::Position, core::integer::u256, core::integer::u256)"
|
|
22333
|
+
}
|
|
22334
|
+
],
|
|
22335
|
+
state_mutability: "view"
|
|
22336
|
+
},
|
|
22337
|
+
{
|
|
22338
|
+
type: "function",
|
|
22339
|
+
name: "check_collateralization",
|
|
22340
|
+
inputs: [
|
|
22341
|
+
{
|
|
22342
|
+
name: "collateral_asset",
|
|
22343
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22344
|
+
},
|
|
22345
|
+
{
|
|
22346
|
+
name: "debt_asset",
|
|
22347
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22348
|
+
},
|
|
22349
|
+
{
|
|
22350
|
+
name: "user",
|
|
22351
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22352
|
+
}
|
|
22353
|
+
],
|
|
22354
|
+
outputs: [
|
|
22355
|
+
{
|
|
22356
|
+
type: "(core::bool, core::integer::u256, core::integer::u256)"
|
|
22357
|
+
}
|
|
22358
|
+
],
|
|
22359
|
+
state_mutability: "view"
|
|
22360
|
+
},
|
|
22361
|
+
{
|
|
22362
|
+
type: "function",
|
|
22363
|
+
name: "check_invariants",
|
|
22364
|
+
inputs: [
|
|
22365
|
+
{
|
|
22366
|
+
name: "collateral_asset",
|
|
22367
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22368
|
+
},
|
|
22369
|
+
{
|
|
22370
|
+
name: "debt_asset",
|
|
22371
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22372
|
+
},
|
|
22373
|
+
{
|
|
22374
|
+
name: "user",
|
|
22375
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22376
|
+
},
|
|
22377
|
+
{
|
|
22378
|
+
name: "collateral_delta",
|
|
22379
|
+
type: "alexandria_math::i257::i257"
|
|
22380
|
+
},
|
|
22381
|
+
{
|
|
22382
|
+
name: "collateral_shares_delta",
|
|
22383
|
+
type: "alexandria_math::i257::i257"
|
|
22384
|
+
},
|
|
22385
|
+
{
|
|
22386
|
+
name: "debt_delta",
|
|
22387
|
+
type: "alexandria_math::i257::i257"
|
|
22388
|
+
},
|
|
22389
|
+
{
|
|
22390
|
+
name: "nominal_debt_delta",
|
|
22391
|
+
type: "alexandria_math::i257::i257"
|
|
22392
|
+
},
|
|
22393
|
+
{
|
|
22394
|
+
name: "is_liquidation",
|
|
22395
|
+
type: "core::bool"
|
|
22396
|
+
}
|
|
22397
|
+
],
|
|
22398
|
+
outputs: [],
|
|
22399
|
+
state_mutability: "view"
|
|
22400
|
+
},
|
|
22401
|
+
{
|
|
22402
|
+
type: "function",
|
|
22403
|
+
name: "modify_position",
|
|
22404
|
+
inputs: [
|
|
22405
|
+
{
|
|
22406
|
+
name: "params",
|
|
22407
|
+
type: "vesu::data_model::ModifyPositionParams"
|
|
22408
|
+
}
|
|
22409
|
+
],
|
|
22410
|
+
outputs: [
|
|
22411
|
+
{
|
|
22412
|
+
type: "vesu::data_model::UpdatePositionResponse"
|
|
22413
|
+
}
|
|
22414
|
+
],
|
|
22415
|
+
state_mutability: "external"
|
|
22416
|
+
},
|
|
22417
|
+
{
|
|
22418
|
+
type: "function",
|
|
22419
|
+
name: "liquidate_position",
|
|
22420
|
+
inputs: [
|
|
22421
|
+
{
|
|
22422
|
+
name: "params",
|
|
22423
|
+
type: "vesu::data_model::LiquidatePositionParams"
|
|
22424
|
+
}
|
|
22425
|
+
],
|
|
22426
|
+
outputs: [
|
|
22427
|
+
{
|
|
22428
|
+
type: "vesu::data_model::UpdatePositionResponse"
|
|
22429
|
+
}
|
|
22430
|
+
],
|
|
22431
|
+
state_mutability: "external"
|
|
22432
|
+
},
|
|
22433
|
+
{
|
|
22434
|
+
type: "function",
|
|
22435
|
+
name: "flash_loan",
|
|
22436
|
+
inputs: [
|
|
22437
|
+
{
|
|
22438
|
+
name: "receiver",
|
|
22439
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22440
|
+
},
|
|
22441
|
+
{
|
|
22442
|
+
name: "asset",
|
|
22443
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22444
|
+
},
|
|
22445
|
+
{
|
|
22446
|
+
name: "amount",
|
|
22447
|
+
type: "core::integer::u256"
|
|
22448
|
+
},
|
|
22449
|
+
{
|
|
22450
|
+
name: "is_legacy",
|
|
22451
|
+
type: "core::bool"
|
|
22452
|
+
},
|
|
22453
|
+
{
|
|
22454
|
+
name: "data",
|
|
22455
|
+
type: "core::array::Span::<core::felt252>"
|
|
22456
|
+
}
|
|
22457
|
+
],
|
|
22458
|
+
outputs: [],
|
|
22459
|
+
state_mutability: "external"
|
|
22460
|
+
},
|
|
22461
|
+
{
|
|
22462
|
+
type: "function",
|
|
22463
|
+
name: "modify_delegation",
|
|
22464
|
+
inputs: [
|
|
22465
|
+
{
|
|
22466
|
+
name: "delegatee",
|
|
22467
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22468
|
+
},
|
|
22469
|
+
{
|
|
22470
|
+
name: "delegation",
|
|
22471
|
+
type: "core::bool"
|
|
22472
|
+
}
|
|
22473
|
+
],
|
|
22474
|
+
outputs: [],
|
|
22475
|
+
state_mutability: "external"
|
|
22476
|
+
},
|
|
22477
|
+
{
|
|
22478
|
+
type: "function",
|
|
22479
|
+
name: "delegation",
|
|
22480
|
+
inputs: [
|
|
22481
|
+
{
|
|
22482
|
+
name: "delegator",
|
|
22483
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22484
|
+
},
|
|
22485
|
+
{
|
|
22486
|
+
name: "delegatee",
|
|
22487
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22488
|
+
}
|
|
22489
|
+
],
|
|
22490
|
+
outputs: [
|
|
22491
|
+
{
|
|
22492
|
+
type: "core::bool"
|
|
22493
|
+
}
|
|
22494
|
+
],
|
|
22495
|
+
state_mutability: "view"
|
|
22496
|
+
},
|
|
22497
|
+
{
|
|
22498
|
+
type: "function",
|
|
22499
|
+
name: "donate_to_reserve",
|
|
22500
|
+
inputs: [
|
|
22501
|
+
{
|
|
22502
|
+
name: "asset",
|
|
22503
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22504
|
+
},
|
|
22505
|
+
{
|
|
22506
|
+
name: "amount",
|
|
22507
|
+
type: "core::integer::u256"
|
|
22508
|
+
}
|
|
22509
|
+
],
|
|
22510
|
+
outputs: [],
|
|
22511
|
+
state_mutability: "external"
|
|
22512
|
+
},
|
|
22513
|
+
{
|
|
22514
|
+
type: "function",
|
|
22515
|
+
name: "add_asset",
|
|
22516
|
+
inputs: [
|
|
22517
|
+
{
|
|
22518
|
+
name: "params",
|
|
22519
|
+
type: "vesu::data_model::AssetParams"
|
|
22520
|
+
},
|
|
22521
|
+
{
|
|
22522
|
+
name: "interest_rate_config",
|
|
22523
|
+
type: "vesu::interest_rate_model::InterestRateConfig"
|
|
22524
|
+
}
|
|
22525
|
+
],
|
|
22526
|
+
outputs: [],
|
|
22527
|
+
state_mutability: "external"
|
|
22528
|
+
},
|
|
22529
|
+
{
|
|
22530
|
+
type: "function",
|
|
22531
|
+
name: "set_asset_parameter",
|
|
22532
|
+
inputs: [
|
|
22533
|
+
{
|
|
22534
|
+
name: "asset",
|
|
22535
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22536
|
+
},
|
|
22537
|
+
{
|
|
22538
|
+
name: "parameter",
|
|
22539
|
+
type: "core::felt252"
|
|
22540
|
+
},
|
|
22541
|
+
{
|
|
22542
|
+
name: "value",
|
|
22543
|
+
type: "core::integer::u256"
|
|
22544
|
+
}
|
|
22545
|
+
],
|
|
22546
|
+
outputs: [],
|
|
22547
|
+
state_mutability: "external"
|
|
22548
|
+
},
|
|
22549
|
+
{
|
|
22550
|
+
type: "function",
|
|
22551
|
+
name: "asset_config",
|
|
22552
|
+
inputs: [
|
|
22553
|
+
{
|
|
22554
|
+
name: "asset",
|
|
22555
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22556
|
+
}
|
|
22557
|
+
],
|
|
22558
|
+
outputs: [
|
|
22559
|
+
{
|
|
22560
|
+
type: "vesu::data_model::AssetConfig"
|
|
22561
|
+
}
|
|
22562
|
+
],
|
|
22563
|
+
state_mutability: "view"
|
|
22564
|
+
},
|
|
22565
|
+
{
|
|
22566
|
+
type: "function",
|
|
22567
|
+
name: "set_oracle",
|
|
22568
|
+
inputs: [
|
|
22569
|
+
{
|
|
22570
|
+
name: "oracle",
|
|
22571
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22572
|
+
}
|
|
22573
|
+
],
|
|
22574
|
+
outputs: [],
|
|
22575
|
+
state_mutability: "external"
|
|
22576
|
+
},
|
|
22577
|
+
{
|
|
22578
|
+
type: "function",
|
|
22579
|
+
name: "oracle",
|
|
22580
|
+
inputs: [],
|
|
22581
|
+
outputs: [
|
|
22582
|
+
{
|
|
22583
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22584
|
+
}
|
|
22585
|
+
],
|
|
22586
|
+
state_mutability: "view"
|
|
22587
|
+
},
|
|
22588
|
+
{
|
|
22589
|
+
type: "function",
|
|
22590
|
+
name: "price",
|
|
22591
|
+
inputs: [
|
|
22592
|
+
{
|
|
22593
|
+
name: "asset",
|
|
22594
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22595
|
+
}
|
|
22596
|
+
],
|
|
22597
|
+
outputs: [
|
|
22598
|
+
{
|
|
22599
|
+
type: "vesu::data_model::AssetPrice"
|
|
22600
|
+
}
|
|
22601
|
+
],
|
|
22602
|
+
state_mutability: "view"
|
|
22603
|
+
},
|
|
22604
|
+
{
|
|
22605
|
+
type: "function",
|
|
22606
|
+
name: "set_fee_recipient",
|
|
22607
|
+
inputs: [
|
|
22608
|
+
{
|
|
22609
|
+
name: "fee_recipient",
|
|
22610
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22611
|
+
}
|
|
22612
|
+
],
|
|
22613
|
+
outputs: [],
|
|
22614
|
+
state_mutability: "external"
|
|
22615
|
+
},
|
|
22616
|
+
{
|
|
22617
|
+
type: "function",
|
|
22618
|
+
name: "fee_recipient",
|
|
22619
|
+
inputs: [],
|
|
22620
|
+
outputs: [
|
|
22621
|
+
{
|
|
22622
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22623
|
+
}
|
|
22624
|
+
],
|
|
22625
|
+
state_mutability: "view"
|
|
22626
|
+
},
|
|
22627
|
+
{
|
|
22628
|
+
type: "function",
|
|
22629
|
+
name: "claim_fees",
|
|
22630
|
+
inputs: [
|
|
22631
|
+
{
|
|
22632
|
+
name: "asset",
|
|
22633
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22634
|
+
},
|
|
22635
|
+
{
|
|
22636
|
+
name: "fee_shares",
|
|
22637
|
+
type: "core::integer::u256"
|
|
22638
|
+
}
|
|
22639
|
+
],
|
|
22640
|
+
outputs: [],
|
|
22641
|
+
state_mutability: "external"
|
|
22642
|
+
},
|
|
22643
|
+
{
|
|
22644
|
+
type: "function",
|
|
22645
|
+
name: "get_fees",
|
|
22646
|
+
inputs: [
|
|
22647
|
+
{
|
|
22648
|
+
name: "asset",
|
|
22649
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22650
|
+
}
|
|
22651
|
+
],
|
|
22652
|
+
outputs: [
|
|
22653
|
+
{
|
|
22654
|
+
type: "(core::integer::u256, core::integer::u256)"
|
|
22655
|
+
}
|
|
22656
|
+
],
|
|
22657
|
+
state_mutability: "view"
|
|
22658
|
+
},
|
|
22659
|
+
{
|
|
22660
|
+
type: "function",
|
|
22661
|
+
name: "rate_accumulator",
|
|
22662
|
+
inputs: [
|
|
22663
|
+
{
|
|
22664
|
+
name: "asset",
|
|
22665
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22666
|
+
}
|
|
22667
|
+
],
|
|
22668
|
+
outputs: [
|
|
22669
|
+
{
|
|
22670
|
+
type: "core::integer::u256"
|
|
22671
|
+
}
|
|
22672
|
+
],
|
|
22673
|
+
state_mutability: "view"
|
|
22674
|
+
},
|
|
22675
|
+
{
|
|
22676
|
+
type: "function",
|
|
22677
|
+
name: "utilization",
|
|
22678
|
+
inputs: [
|
|
22679
|
+
{
|
|
22680
|
+
name: "asset",
|
|
22681
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22682
|
+
}
|
|
22683
|
+
],
|
|
22684
|
+
outputs: [
|
|
22685
|
+
{
|
|
22686
|
+
type: "core::integer::u256"
|
|
22687
|
+
}
|
|
22688
|
+
],
|
|
22689
|
+
state_mutability: "view"
|
|
22690
|
+
},
|
|
22691
|
+
{
|
|
22692
|
+
type: "function",
|
|
22693
|
+
name: "interest_rate",
|
|
22694
|
+
inputs: [
|
|
22695
|
+
{
|
|
22696
|
+
name: "asset",
|
|
22697
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22698
|
+
},
|
|
22699
|
+
{
|
|
22700
|
+
name: "utilization",
|
|
22701
|
+
type: "core::integer::u256"
|
|
22702
|
+
},
|
|
22703
|
+
{
|
|
22704
|
+
name: "last_updated",
|
|
22705
|
+
type: "core::integer::u64"
|
|
22706
|
+
},
|
|
22707
|
+
{
|
|
22708
|
+
name: "last_full_utilization_rate",
|
|
22709
|
+
type: "core::integer::u256"
|
|
22710
|
+
}
|
|
22711
|
+
],
|
|
22712
|
+
outputs: [
|
|
22713
|
+
{
|
|
22714
|
+
type: "core::integer::u256"
|
|
22715
|
+
}
|
|
22716
|
+
],
|
|
22717
|
+
state_mutability: "view"
|
|
22718
|
+
},
|
|
22719
|
+
{
|
|
22720
|
+
type: "function",
|
|
22721
|
+
name: "set_interest_rate_parameter",
|
|
22722
|
+
inputs: [
|
|
22723
|
+
{
|
|
22724
|
+
name: "asset",
|
|
22725
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22726
|
+
},
|
|
22727
|
+
{
|
|
22728
|
+
name: "parameter",
|
|
22729
|
+
type: "core::felt252"
|
|
22730
|
+
},
|
|
22731
|
+
{
|
|
22732
|
+
name: "value",
|
|
22733
|
+
type: "core::integer::u256"
|
|
22734
|
+
}
|
|
22735
|
+
],
|
|
22736
|
+
outputs: [],
|
|
22737
|
+
state_mutability: "external"
|
|
22738
|
+
},
|
|
22739
|
+
{
|
|
22740
|
+
type: "function",
|
|
22741
|
+
name: "interest_rate_config",
|
|
22742
|
+
inputs: [
|
|
22743
|
+
{
|
|
22744
|
+
name: "asset",
|
|
22745
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22746
|
+
}
|
|
22747
|
+
],
|
|
22748
|
+
outputs: [
|
|
22749
|
+
{
|
|
22750
|
+
type: "vesu::interest_rate_model::InterestRateConfig"
|
|
22751
|
+
}
|
|
22752
|
+
],
|
|
22753
|
+
state_mutability: "view"
|
|
22754
|
+
},
|
|
22755
|
+
{
|
|
22756
|
+
type: "function",
|
|
22757
|
+
name: "pairs",
|
|
22758
|
+
inputs: [
|
|
22759
|
+
{
|
|
22760
|
+
name: "collateral_asset",
|
|
22761
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22762
|
+
},
|
|
22763
|
+
{
|
|
22764
|
+
name: "debt_asset",
|
|
22765
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22766
|
+
}
|
|
22767
|
+
],
|
|
22768
|
+
outputs: [
|
|
22769
|
+
{
|
|
22770
|
+
type: "vesu::data_model::Pair"
|
|
22771
|
+
}
|
|
22772
|
+
],
|
|
22773
|
+
state_mutability: "view"
|
|
22774
|
+
},
|
|
22775
|
+
{
|
|
22776
|
+
type: "function",
|
|
22777
|
+
name: "set_pair_config",
|
|
22778
|
+
inputs: [
|
|
22779
|
+
{
|
|
22780
|
+
name: "collateral_asset",
|
|
22781
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22782
|
+
},
|
|
22783
|
+
{
|
|
22784
|
+
name: "debt_asset",
|
|
22785
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22786
|
+
},
|
|
22787
|
+
{
|
|
22788
|
+
name: "pair_config",
|
|
22789
|
+
type: "vesu::data_model::PairConfig"
|
|
22790
|
+
}
|
|
22791
|
+
],
|
|
22792
|
+
outputs: [],
|
|
22793
|
+
state_mutability: "external"
|
|
22794
|
+
},
|
|
22795
|
+
{
|
|
22796
|
+
type: "function",
|
|
22797
|
+
name: "set_pair_parameter",
|
|
22798
|
+
inputs: [
|
|
22799
|
+
{
|
|
22800
|
+
name: "collateral_asset",
|
|
22801
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22802
|
+
},
|
|
22803
|
+
{
|
|
22804
|
+
name: "debt_asset",
|
|
22805
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22806
|
+
},
|
|
22807
|
+
{
|
|
22808
|
+
name: "parameter",
|
|
22809
|
+
type: "core::felt252"
|
|
22810
|
+
},
|
|
22811
|
+
{
|
|
22812
|
+
name: "value",
|
|
22813
|
+
type: "core::integer::u128"
|
|
22814
|
+
}
|
|
22815
|
+
],
|
|
22816
|
+
outputs: [],
|
|
22817
|
+
state_mutability: "external"
|
|
22818
|
+
},
|
|
22819
|
+
{
|
|
22820
|
+
type: "function",
|
|
22821
|
+
name: "pair_config",
|
|
22822
|
+
inputs: [
|
|
22823
|
+
{
|
|
22824
|
+
name: "collateral_asset",
|
|
22825
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22826
|
+
},
|
|
22827
|
+
{
|
|
22828
|
+
name: "debt_asset",
|
|
22829
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22830
|
+
}
|
|
22831
|
+
],
|
|
22832
|
+
outputs: [
|
|
22833
|
+
{
|
|
22834
|
+
type: "vesu::data_model::PairConfig"
|
|
22835
|
+
}
|
|
22836
|
+
],
|
|
22837
|
+
state_mutability: "view"
|
|
22838
|
+
},
|
|
22839
|
+
{
|
|
22840
|
+
type: "function",
|
|
22841
|
+
name: "calculate_debt",
|
|
22842
|
+
inputs: [
|
|
22843
|
+
{
|
|
22844
|
+
name: "nominal_debt",
|
|
22845
|
+
type: "alexandria_math::i257::i257"
|
|
22846
|
+
},
|
|
22847
|
+
{
|
|
22848
|
+
name: "rate_accumulator",
|
|
22849
|
+
type: "core::integer::u256"
|
|
22850
|
+
},
|
|
22851
|
+
{
|
|
22852
|
+
name: "asset_scale",
|
|
22853
|
+
type: "core::integer::u256"
|
|
22854
|
+
}
|
|
22855
|
+
],
|
|
22856
|
+
outputs: [
|
|
22857
|
+
{
|
|
22858
|
+
type: "core::integer::u256"
|
|
22859
|
+
}
|
|
22860
|
+
],
|
|
22861
|
+
state_mutability: "view"
|
|
22862
|
+
},
|
|
22863
|
+
{
|
|
22864
|
+
type: "function",
|
|
22865
|
+
name: "calculate_nominal_debt",
|
|
22866
|
+
inputs: [
|
|
22867
|
+
{
|
|
22868
|
+
name: "debt",
|
|
22869
|
+
type: "alexandria_math::i257::i257"
|
|
22870
|
+
},
|
|
22871
|
+
{
|
|
22872
|
+
name: "rate_accumulator",
|
|
22873
|
+
type: "core::integer::u256"
|
|
22874
|
+
},
|
|
22875
|
+
{
|
|
22876
|
+
name: "asset_scale",
|
|
22877
|
+
type: "core::integer::u256"
|
|
22878
|
+
}
|
|
22879
|
+
],
|
|
22880
|
+
outputs: [
|
|
22881
|
+
{
|
|
22882
|
+
type: "core::integer::u256"
|
|
22883
|
+
}
|
|
22884
|
+
],
|
|
22885
|
+
state_mutability: "view"
|
|
22886
|
+
},
|
|
22887
|
+
{
|
|
22888
|
+
type: "function",
|
|
22889
|
+
name: "calculate_collateral_shares",
|
|
22890
|
+
inputs: [
|
|
22891
|
+
{
|
|
22892
|
+
name: "asset",
|
|
22893
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22894
|
+
},
|
|
22895
|
+
{
|
|
22896
|
+
name: "collateral",
|
|
22897
|
+
type: "alexandria_math::i257::i257"
|
|
22898
|
+
}
|
|
22899
|
+
],
|
|
22900
|
+
outputs: [
|
|
22901
|
+
{
|
|
22902
|
+
type: "core::integer::u256"
|
|
22903
|
+
}
|
|
22904
|
+
],
|
|
22905
|
+
state_mutability: "view"
|
|
22906
|
+
},
|
|
22907
|
+
{
|
|
22908
|
+
type: "function",
|
|
22909
|
+
name: "calculate_collateral",
|
|
22910
|
+
inputs: [
|
|
22911
|
+
{
|
|
22912
|
+
name: "asset",
|
|
22913
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22914
|
+
},
|
|
22915
|
+
{
|
|
22916
|
+
name: "collateral_shares",
|
|
22917
|
+
type: "alexandria_math::i257::i257"
|
|
22918
|
+
}
|
|
22919
|
+
],
|
|
22920
|
+
outputs: [
|
|
22921
|
+
{
|
|
22922
|
+
type: "core::integer::u256"
|
|
22923
|
+
}
|
|
22924
|
+
],
|
|
22925
|
+
state_mutability: "view"
|
|
22926
|
+
},
|
|
22927
|
+
{
|
|
22928
|
+
type: "function",
|
|
22929
|
+
name: "deconstruct_collateral_amount",
|
|
22930
|
+
inputs: [
|
|
22931
|
+
{
|
|
22932
|
+
name: "collateral_asset",
|
|
22933
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22934
|
+
},
|
|
22935
|
+
{
|
|
22936
|
+
name: "debt_asset",
|
|
22937
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22938
|
+
},
|
|
22939
|
+
{
|
|
22940
|
+
name: "user",
|
|
22941
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22942
|
+
},
|
|
22943
|
+
{
|
|
22944
|
+
name: "collateral",
|
|
22945
|
+
type: "vesu::data_model::Amount"
|
|
22946
|
+
}
|
|
22947
|
+
],
|
|
22948
|
+
outputs: [
|
|
22949
|
+
{
|
|
22950
|
+
type: "(alexandria_math::i257::i257, alexandria_math::i257::i257)"
|
|
22951
|
+
}
|
|
22952
|
+
],
|
|
22953
|
+
state_mutability: "view"
|
|
22954
|
+
},
|
|
22955
|
+
{
|
|
22956
|
+
type: "function",
|
|
22957
|
+
name: "deconstruct_debt_amount",
|
|
22958
|
+
inputs: [
|
|
22959
|
+
{
|
|
22960
|
+
name: "collateral_asset",
|
|
22961
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22962
|
+
},
|
|
22963
|
+
{
|
|
22964
|
+
name: "debt_asset",
|
|
22965
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22966
|
+
},
|
|
22967
|
+
{
|
|
22968
|
+
name: "user",
|
|
22969
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22970
|
+
},
|
|
22971
|
+
{
|
|
22972
|
+
name: "debt",
|
|
22973
|
+
type: "vesu::data_model::Amount"
|
|
22974
|
+
}
|
|
22975
|
+
],
|
|
22976
|
+
outputs: [
|
|
22977
|
+
{
|
|
22978
|
+
type: "(alexandria_math::i257::i257, alexandria_math::i257::i257)"
|
|
22979
|
+
}
|
|
22980
|
+
],
|
|
22981
|
+
state_mutability: "view"
|
|
22982
|
+
},
|
|
22983
|
+
{
|
|
22984
|
+
type: "function",
|
|
22985
|
+
name: "curator",
|
|
22986
|
+
inputs: [],
|
|
22987
|
+
outputs: [
|
|
22988
|
+
{
|
|
22989
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
22990
|
+
}
|
|
22991
|
+
],
|
|
22992
|
+
state_mutability: "view"
|
|
22993
|
+
},
|
|
22994
|
+
{
|
|
22995
|
+
type: "function",
|
|
22996
|
+
name: "pending_curator",
|
|
22997
|
+
inputs: [],
|
|
22998
|
+
outputs: [
|
|
22999
|
+
{
|
|
23000
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23001
|
+
}
|
|
23002
|
+
],
|
|
23003
|
+
state_mutability: "view"
|
|
23004
|
+
},
|
|
23005
|
+
{
|
|
23006
|
+
type: "function",
|
|
23007
|
+
name: "nominate_curator",
|
|
23008
|
+
inputs: [
|
|
23009
|
+
{
|
|
23010
|
+
name: "pending_curator",
|
|
23011
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23012
|
+
}
|
|
23013
|
+
],
|
|
23014
|
+
outputs: [],
|
|
23015
|
+
state_mutability: "external"
|
|
23016
|
+
},
|
|
23017
|
+
{
|
|
23018
|
+
type: "function",
|
|
23019
|
+
name: "accept_curator_ownership",
|
|
23020
|
+
inputs: [],
|
|
23021
|
+
outputs: [],
|
|
23022
|
+
state_mutability: "external"
|
|
23023
|
+
},
|
|
23024
|
+
{
|
|
23025
|
+
type: "function",
|
|
23026
|
+
name: "set_pausing_agent",
|
|
23027
|
+
inputs: [
|
|
23028
|
+
{
|
|
23029
|
+
name: "pausing_agent",
|
|
23030
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23031
|
+
}
|
|
23032
|
+
],
|
|
23033
|
+
outputs: [],
|
|
23034
|
+
state_mutability: "external"
|
|
23035
|
+
},
|
|
23036
|
+
{
|
|
23037
|
+
type: "function",
|
|
23038
|
+
name: "pausing_agent",
|
|
23039
|
+
inputs: [],
|
|
23040
|
+
outputs: [
|
|
23041
|
+
{
|
|
23042
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23043
|
+
}
|
|
23044
|
+
],
|
|
23045
|
+
state_mutability: "view"
|
|
23046
|
+
},
|
|
23047
|
+
{
|
|
23048
|
+
type: "function",
|
|
23049
|
+
name: "pause",
|
|
23050
|
+
inputs: [],
|
|
23051
|
+
outputs: [],
|
|
23052
|
+
state_mutability: "external"
|
|
23053
|
+
},
|
|
23054
|
+
{
|
|
23055
|
+
type: "function",
|
|
23056
|
+
name: "unpause",
|
|
23057
|
+
inputs: [],
|
|
23058
|
+
outputs: [],
|
|
23059
|
+
state_mutability: "external"
|
|
23060
|
+
},
|
|
23061
|
+
{
|
|
23062
|
+
type: "function",
|
|
23063
|
+
name: "is_paused",
|
|
23064
|
+
inputs: [],
|
|
23065
|
+
outputs: [
|
|
23066
|
+
{
|
|
23067
|
+
type: "core::bool"
|
|
23068
|
+
}
|
|
23069
|
+
],
|
|
23070
|
+
state_mutability: "view"
|
|
23071
|
+
},
|
|
23072
|
+
{
|
|
23073
|
+
type: "function",
|
|
23074
|
+
name: "upgrade_name",
|
|
23075
|
+
inputs: [],
|
|
23076
|
+
outputs: [
|
|
23077
|
+
{
|
|
23078
|
+
type: "core::felt252"
|
|
23079
|
+
}
|
|
23080
|
+
],
|
|
23081
|
+
state_mutability: "view"
|
|
23082
|
+
},
|
|
23083
|
+
{
|
|
23084
|
+
type: "function",
|
|
23085
|
+
name: "upgrade",
|
|
23086
|
+
inputs: [
|
|
23087
|
+
{
|
|
23088
|
+
name: "new_implementation",
|
|
23089
|
+
type: "core::starknet::class_hash::ClassHash"
|
|
23090
|
+
},
|
|
23091
|
+
{
|
|
23092
|
+
name: "eic_implementation_data",
|
|
23093
|
+
type: "core::option::Option::<(core::starknet::class_hash::ClassHash, core::array::Span::<core::felt252>)>"
|
|
23094
|
+
}
|
|
23095
|
+
],
|
|
23096
|
+
outputs: [],
|
|
23097
|
+
state_mutability: "external"
|
|
23098
|
+
}
|
|
23099
|
+
]
|
|
23100
|
+
},
|
|
23101
|
+
{
|
|
23102
|
+
type: "impl",
|
|
23103
|
+
name: "OwnableTwoStepImpl",
|
|
23104
|
+
interface_name: "openzeppelin_access::ownable::interface::IOwnableTwoStep"
|
|
23105
|
+
},
|
|
23106
|
+
{
|
|
23107
|
+
type: "interface",
|
|
23108
|
+
name: "openzeppelin_access::ownable::interface::IOwnableTwoStep",
|
|
23109
|
+
items: [
|
|
23110
|
+
{
|
|
23111
|
+
type: "function",
|
|
23112
|
+
name: "owner",
|
|
23113
|
+
inputs: [],
|
|
23114
|
+
outputs: [
|
|
23115
|
+
{
|
|
23116
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23117
|
+
}
|
|
23118
|
+
],
|
|
23119
|
+
state_mutability: "view"
|
|
23120
|
+
},
|
|
23121
|
+
{
|
|
23122
|
+
type: "function",
|
|
23123
|
+
name: "pending_owner",
|
|
23124
|
+
inputs: [],
|
|
23125
|
+
outputs: [
|
|
23126
|
+
{
|
|
23127
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23128
|
+
}
|
|
23129
|
+
],
|
|
23130
|
+
state_mutability: "view"
|
|
23131
|
+
},
|
|
23132
|
+
{
|
|
23133
|
+
type: "function",
|
|
23134
|
+
name: "accept_ownership",
|
|
23135
|
+
inputs: [],
|
|
23136
|
+
outputs: [],
|
|
23137
|
+
state_mutability: "external"
|
|
23138
|
+
},
|
|
23139
|
+
{
|
|
23140
|
+
type: "function",
|
|
23141
|
+
name: "transfer_ownership",
|
|
23142
|
+
inputs: [
|
|
23143
|
+
{
|
|
23144
|
+
name: "new_owner",
|
|
23145
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23146
|
+
}
|
|
23147
|
+
],
|
|
23148
|
+
outputs: [],
|
|
23149
|
+
state_mutability: "external"
|
|
23150
|
+
},
|
|
23151
|
+
{
|
|
23152
|
+
type: "function",
|
|
23153
|
+
name: "renounce_ownership",
|
|
23154
|
+
inputs: [],
|
|
23155
|
+
outputs: [],
|
|
23156
|
+
state_mutability: "external"
|
|
23157
|
+
}
|
|
23158
|
+
]
|
|
23159
|
+
},
|
|
23160
|
+
{
|
|
23161
|
+
type: "constructor",
|
|
23162
|
+
name: "constructor",
|
|
23163
|
+
inputs: [
|
|
23164
|
+
{
|
|
23165
|
+
name: "name",
|
|
23166
|
+
type: "core::felt252"
|
|
23167
|
+
},
|
|
23168
|
+
{
|
|
23169
|
+
name: "owner",
|
|
23170
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23171
|
+
},
|
|
23172
|
+
{
|
|
23173
|
+
name: "curator",
|
|
23174
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23175
|
+
},
|
|
23176
|
+
{
|
|
23177
|
+
name: "oracle",
|
|
23178
|
+
type: "core::starknet::contract_address::ContractAddress"
|
|
23179
|
+
}
|
|
23180
|
+
]
|
|
23181
|
+
},
|
|
23182
|
+
{
|
|
23183
|
+
type: "event",
|
|
23184
|
+
name: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred",
|
|
23185
|
+
kind: "struct",
|
|
23186
|
+
members: [
|
|
23187
|
+
{
|
|
23188
|
+
name: "previous_owner",
|
|
23189
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23190
|
+
kind: "key"
|
|
23191
|
+
},
|
|
23192
|
+
{
|
|
23193
|
+
name: "new_owner",
|
|
23194
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23195
|
+
kind: "key"
|
|
23196
|
+
}
|
|
23197
|
+
]
|
|
23198
|
+
},
|
|
23199
|
+
{
|
|
23200
|
+
type: "event",
|
|
23201
|
+
name: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted",
|
|
23202
|
+
kind: "struct",
|
|
23203
|
+
members: [
|
|
23204
|
+
{
|
|
23205
|
+
name: "previous_owner",
|
|
23206
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23207
|
+
kind: "key"
|
|
23208
|
+
},
|
|
23209
|
+
{
|
|
23210
|
+
name: "new_owner",
|
|
23211
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23212
|
+
kind: "key"
|
|
23213
|
+
}
|
|
23214
|
+
]
|
|
23215
|
+
},
|
|
23216
|
+
{
|
|
23217
|
+
type: "event",
|
|
23218
|
+
name: "openzeppelin_access::ownable::ownable::OwnableComponent::Event",
|
|
23219
|
+
kind: "enum",
|
|
23220
|
+
variants: [
|
|
23221
|
+
{
|
|
23222
|
+
name: "OwnershipTransferred",
|
|
23223
|
+
type: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred",
|
|
23224
|
+
kind: "nested"
|
|
23225
|
+
},
|
|
23226
|
+
{
|
|
23227
|
+
name: "OwnershipTransferStarted",
|
|
23228
|
+
type: "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted",
|
|
23229
|
+
kind: "nested"
|
|
23230
|
+
}
|
|
23231
|
+
]
|
|
23232
|
+
},
|
|
23233
|
+
{
|
|
23234
|
+
type: "event",
|
|
23235
|
+
name: "vesu::interest_rate_model::interest_rate_model_component::SetInterestRateConfig",
|
|
23236
|
+
kind: "struct",
|
|
23237
|
+
members: [
|
|
23238
|
+
{
|
|
23239
|
+
name: "asset",
|
|
23240
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23241
|
+
kind: "data"
|
|
23242
|
+
},
|
|
23243
|
+
{
|
|
23244
|
+
name: "interest_rate_config",
|
|
23245
|
+
type: "vesu::interest_rate_model::InterestRateConfig",
|
|
23246
|
+
kind: "data"
|
|
23247
|
+
}
|
|
23248
|
+
]
|
|
23249
|
+
},
|
|
23250
|
+
{
|
|
23251
|
+
type: "event",
|
|
23252
|
+
name: "vesu::interest_rate_model::interest_rate_model_component::Event",
|
|
23253
|
+
kind: "enum",
|
|
23254
|
+
variants: [
|
|
23255
|
+
{
|
|
23256
|
+
name: "SetInterestRateConfig",
|
|
23257
|
+
type: "vesu::interest_rate_model::interest_rate_model_component::SetInterestRateConfig",
|
|
23258
|
+
kind: "nested"
|
|
23259
|
+
}
|
|
23260
|
+
]
|
|
23261
|
+
},
|
|
23262
|
+
{
|
|
23263
|
+
type: "event",
|
|
23264
|
+
name: "vesu::pool::Pool::UpdateContext",
|
|
23265
|
+
kind: "struct",
|
|
23266
|
+
members: [
|
|
23267
|
+
{
|
|
23268
|
+
name: "collateral_asset",
|
|
23269
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23270
|
+
kind: "key"
|
|
23271
|
+
},
|
|
23272
|
+
{
|
|
23273
|
+
name: "debt_asset",
|
|
23274
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23275
|
+
kind: "key"
|
|
23276
|
+
},
|
|
23277
|
+
{
|
|
23278
|
+
name: "collateral_asset_config",
|
|
23279
|
+
type: "vesu::data_model::AssetConfig",
|
|
23280
|
+
kind: "data"
|
|
23281
|
+
},
|
|
23282
|
+
{
|
|
23283
|
+
name: "debt_asset_config",
|
|
23284
|
+
type: "vesu::data_model::AssetConfig",
|
|
23285
|
+
kind: "data"
|
|
23286
|
+
},
|
|
23287
|
+
{
|
|
23288
|
+
name: "collateral_asset_price",
|
|
23289
|
+
type: "vesu::data_model::AssetPrice",
|
|
23290
|
+
kind: "data"
|
|
23291
|
+
},
|
|
23292
|
+
{
|
|
23293
|
+
name: "debt_asset_price",
|
|
23294
|
+
type: "vesu::data_model::AssetPrice",
|
|
23295
|
+
kind: "data"
|
|
23296
|
+
}
|
|
23297
|
+
]
|
|
23298
|
+
},
|
|
23299
|
+
{
|
|
23300
|
+
type: "event",
|
|
23301
|
+
name: "vesu::pool::Pool::ModifyPosition",
|
|
23302
|
+
kind: "struct",
|
|
23303
|
+
members: [
|
|
23304
|
+
{
|
|
23305
|
+
name: "collateral_asset",
|
|
23306
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23307
|
+
kind: "key"
|
|
23308
|
+
},
|
|
23309
|
+
{
|
|
23310
|
+
name: "debt_asset",
|
|
23311
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23312
|
+
kind: "key"
|
|
23313
|
+
},
|
|
23314
|
+
{
|
|
23315
|
+
name: "user",
|
|
23316
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23317
|
+
kind: "key"
|
|
23318
|
+
},
|
|
23319
|
+
{
|
|
23320
|
+
name: "collateral_delta",
|
|
23321
|
+
type: "alexandria_math::i257::i257",
|
|
23322
|
+
kind: "data"
|
|
23323
|
+
},
|
|
23324
|
+
{
|
|
23325
|
+
name: "collateral_shares_delta",
|
|
23326
|
+
type: "alexandria_math::i257::i257",
|
|
23327
|
+
kind: "data"
|
|
23328
|
+
},
|
|
23329
|
+
{
|
|
23330
|
+
name: "debt_delta",
|
|
23331
|
+
type: "alexandria_math::i257::i257",
|
|
23332
|
+
kind: "data"
|
|
23333
|
+
},
|
|
23334
|
+
{
|
|
23335
|
+
name: "nominal_debt_delta",
|
|
23336
|
+
type: "alexandria_math::i257::i257",
|
|
23337
|
+
kind: "data"
|
|
23338
|
+
}
|
|
23339
|
+
]
|
|
23340
|
+
},
|
|
23341
|
+
{
|
|
23342
|
+
type: "event",
|
|
23343
|
+
name: "vesu::pool::Pool::LiquidatePosition",
|
|
23344
|
+
kind: "struct",
|
|
23345
|
+
members: [
|
|
23346
|
+
{
|
|
23347
|
+
name: "collateral_asset",
|
|
23348
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23349
|
+
kind: "key"
|
|
23350
|
+
},
|
|
23351
|
+
{
|
|
23352
|
+
name: "debt_asset",
|
|
23353
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23354
|
+
kind: "key"
|
|
23355
|
+
},
|
|
23356
|
+
{
|
|
23357
|
+
name: "user",
|
|
23358
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23359
|
+
kind: "key"
|
|
23360
|
+
},
|
|
23361
|
+
{
|
|
23362
|
+
name: "liquidator",
|
|
23363
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23364
|
+
kind: "key"
|
|
23365
|
+
},
|
|
23366
|
+
{
|
|
23367
|
+
name: "collateral_delta",
|
|
23368
|
+
type: "alexandria_math::i257::i257",
|
|
23369
|
+
kind: "data"
|
|
23370
|
+
},
|
|
23371
|
+
{
|
|
23372
|
+
name: "collateral_shares_delta",
|
|
23373
|
+
type: "alexandria_math::i257::i257",
|
|
23374
|
+
kind: "data"
|
|
23375
|
+
},
|
|
23376
|
+
{
|
|
23377
|
+
name: "debt_delta",
|
|
23378
|
+
type: "alexandria_math::i257::i257",
|
|
23379
|
+
kind: "data"
|
|
23380
|
+
},
|
|
23381
|
+
{
|
|
23382
|
+
name: "nominal_debt_delta",
|
|
23383
|
+
type: "alexandria_math::i257::i257",
|
|
23384
|
+
kind: "data"
|
|
23385
|
+
},
|
|
23386
|
+
{
|
|
23387
|
+
name: "bad_debt",
|
|
23388
|
+
type: "core::integer::u256",
|
|
23389
|
+
kind: "data"
|
|
23390
|
+
}
|
|
23391
|
+
]
|
|
23392
|
+
},
|
|
23393
|
+
{
|
|
23394
|
+
type: "event",
|
|
23395
|
+
name: "vesu::pool::Pool::Flashloan",
|
|
23396
|
+
kind: "struct",
|
|
23397
|
+
members: [
|
|
23398
|
+
{
|
|
23399
|
+
name: "sender",
|
|
23400
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23401
|
+
kind: "key"
|
|
23402
|
+
},
|
|
23403
|
+
{
|
|
23404
|
+
name: "receiver",
|
|
23405
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23406
|
+
kind: "key"
|
|
23407
|
+
},
|
|
23408
|
+
{
|
|
23409
|
+
name: "asset",
|
|
23410
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23411
|
+
kind: "key"
|
|
23412
|
+
},
|
|
23413
|
+
{
|
|
23414
|
+
name: "amount",
|
|
23415
|
+
type: "core::integer::u256",
|
|
23416
|
+
kind: "data"
|
|
23417
|
+
}
|
|
23418
|
+
]
|
|
23419
|
+
},
|
|
23420
|
+
{
|
|
23421
|
+
type: "event",
|
|
23422
|
+
name: "vesu::pool::Pool::ModifyDelegation",
|
|
23423
|
+
kind: "struct",
|
|
23424
|
+
members: [
|
|
23425
|
+
{
|
|
23426
|
+
name: "delegator",
|
|
23427
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23428
|
+
kind: "key"
|
|
23429
|
+
},
|
|
23430
|
+
{
|
|
23431
|
+
name: "delegatee",
|
|
23432
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23433
|
+
kind: "key"
|
|
23434
|
+
},
|
|
23435
|
+
{
|
|
23436
|
+
name: "delegation",
|
|
23437
|
+
type: "core::bool",
|
|
23438
|
+
kind: "data"
|
|
23439
|
+
}
|
|
23440
|
+
]
|
|
23441
|
+
},
|
|
23442
|
+
{
|
|
23443
|
+
type: "event",
|
|
23444
|
+
name: "vesu::pool::Pool::Donate",
|
|
23445
|
+
kind: "struct",
|
|
23446
|
+
members: [
|
|
23447
|
+
{
|
|
23448
|
+
name: "asset",
|
|
23449
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23450
|
+
kind: "key"
|
|
23451
|
+
},
|
|
23452
|
+
{
|
|
23453
|
+
name: "amount",
|
|
23454
|
+
type: "core::integer::u256",
|
|
23455
|
+
kind: "data"
|
|
23456
|
+
}
|
|
23457
|
+
]
|
|
23458
|
+
},
|
|
23459
|
+
{
|
|
23460
|
+
type: "event",
|
|
23461
|
+
name: "vesu::pool::Pool::SetAssetConfig",
|
|
23462
|
+
kind: "struct",
|
|
23463
|
+
members: [
|
|
23464
|
+
{
|
|
23465
|
+
name: "asset",
|
|
23466
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23467
|
+
kind: "key"
|
|
23468
|
+
},
|
|
23469
|
+
{
|
|
23470
|
+
name: "asset_config",
|
|
23471
|
+
type: "vesu::data_model::AssetConfig",
|
|
23472
|
+
kind: "data"
|
|
23473
|
+
}
|
|
23474
|
+
]
|
|
23475
|
+
},
|
|
23476
|
+
{
|
|
23477
|
+
type: "event",
|
|
23478
|
+
name: "vesu::pool::Pool::SetOracle",
|
|
23479
|
+
kind: "struct",
|
|
23480
|
+
members: [
|
|
23481
|
+
{
|
|
23482
|
+
name: "oracle",
|
|
23483
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23484
|
+
kind: "data"
|
|
23485
|
+
}
|
|
23486
|
+
]
|
|
23487
|
+
},
|
|
23488
|
+
{
|
|
23489
|
+
type: "event",
|
|
23490
|
+
name: "vesu::pool::Pool::SetPairConfig",
|
|
23491
|
+
kind: "struct",
|
|
23492
|
+
members: [
|
|
23493
|
+
{
|
|
23494
|
+
name: "collateral_asset",
|
|
23495
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23496
|
+
kind: "key"
|
|
23497
|
+
},
|
|
23498
|
+
{
|
|
23499
|
+
name: "debt_asset",
|
|
23500
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23501
|
+
kind: "key"
|
|
23502
|
+
},
|
|
23503
|
+
{
|
|
23504
|
+
name: "pair_config",
|
|
23505
|
+
type: "vesu::data_model::PairConfig",
|
|
23506
|
+
kind: "data"
|
|
23507
|
+
}
|
|
23508
|
+
]
|
|
23509
|
+
},
|
|
23510
|
+
{
|
|
23511
|
+
type: "event",
|
|
23512
|
+
name: "vesu::pool::Pool::ClaimFees",
|
|
23513
|
+
kind: "struct",
|
|
23514
|
+
members: [
|
|
23515
|
+
{
|
|
23516
|
+
name: "asset",
|
|
23517
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23518
|
+
kind: "key"
|
|
23519
|
+
},
|
|
23520
|
+
{
|
|
23521
|
+
name: "recipient",
|
|
23522
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23523
|
+
kind: "data"
|
|
23524
|
+
},
|
|
23525
|
+
{
|
|
23526
|
+
name: "fee_shares",
|
|
23527
|
+
type: "core::integer::u256",
|
|
23528
|
+
kind: "data"
|
|
23529
|
+
},
|
|
23530
|
+
{
|
|
23531
|
+
name: "fee_amount",
|
|
23532
|
+
type: "core::integer::u256",
|
|
23533
|
+
kind: "data"
|
|
23534
|
+
}
|
|
23535
|
+
]
|
|
23536
|
+
},
|
|
23537
|
+
{
|
|
23538
|
+
type: "event",
|
|
23539
|
+
name: "vesu::pool::Pool::SetFeeRecipient",
|
|
23540
|
+
kind: "struct",
|
|
23541
|
+
members: [
|
|
23542
|
+
{
|
|
23543
|
+
name: "fee_recipient",
|
|
23544
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23545
|
+
kind: "key"
|
|
23546
|
+
}
|
|
23547
|
+
]
|
|
23548
|
+
},
|
|
23549
|
+
{
|
|
23550
|
+
type: "event",
|
|
23551
|
+
name: "vesu::pool::Pool::SetPausingAgent",
|
|
23552
|
+
kind: "struct",
|
|
23553
|
+
members: [
|
|
23554
|
+
{
|
|
23555
|
+
name: "agent",
|
|
23556
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23557
|
+
kind: "key"
|
|
23558
|
+
}
|
|
23559
|
+
]
|
|
23560
|
+
},
|
|
23561
|
+
{
|
|
23562
|
+
type: "event",
|
|
23563
|
+
name: "vesu::pool::Pool::SetCurator",
|
|
23564
|
+
kind: "struct",
|
|
23565
|
+
members: [
|
|
23566
|
+
{
|
|
23567
|
+
name: "curator",
|
|
23568
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23569
|
+
kind: "key"
|
|
23570
|
+
}
|
|
23571
|
+
]
|
|
23572
|
+
},
|
|
23573
|
+
{
|
|
23574
|
+
type: "event",
|
|
23575
|
+
name: "vesu::pool::Pool::NominateCurator",
|
|
23576
|
+
kind: "struct",
|
|
23577
|
+
members: [
|
|
23578
|
+
{
|
|
23579
|
+
name: "pending_curator",
|
|
23580
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23581
|
+
kind: "key"
|
|
23582
|
+
}
|
|
23583
|
+
]
|
|
23584
|
+
},
|
|
23585
|
+
{
|
|
23586
|
+
type: "event",
|
|
23587
|
+
name: "vesu::pool::Pool::ContractPaused",
|
|
23588
|
+
kind: "struct",
|
|
23589
|
+
members: [
|
|
23590
|
+
{
|
|
23591
|
+
name: "account",
|
|
23592
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23593
|
+
kind: "data"
|
|
23594
|
+
}
|
|
23595
|
+
]
|
|
23596
|
+
},
|
|
23597
|
+
{
|
|
23598
|
+
type: "event",
|
|
23599
|
+
name: "vesu::pool::Pool::ContractUnpaused",
|
|
23600
|
+
kind: "struct",
|
|
23601
|
+
members: [
|
|
23602
|
+
{
|
|
23603
|
+
name: "account",
|
|
23604
|
+
type: "core::starknet::contract_address::ContractAddress",
|
|
23605
|
+
kind: "data"
|
|
23606
|
+
}
|
|
23607
|
+
]
|
|
23608
|
+
},
|
|
23609
|
+
{
|
|
23610
|
+
type: "event",
|
|
23611
|
+
name: "vesu::pool::Pool::ContractUpgraded",
|
|
23612
|
+
kind: "struct",
|
|
23613
|
+
members: [
|
|
23614
|
+
{
|
|
23615
|
+
name: "new_implementation",
|
|
23616
|
+
type: "core::starknet::class_hash::ClassHash",
|
|
23617
|
+
kind: "data"
|
|
23618
|
+
}
|
|
23619
|
+
]
|
|
23620
|
+
},
|
|
23621
|
+
{
|
|
23622
|
+
type: "event",
|
|
23623
|
+
name: "vesu::pool::Pool::Event",
|
|
23624
|
+
kind: "enum",
|
|
23625
|
+
variants: [
|
|
23626
|
+
{
|
|
23627
|
+
name: "OwnableEvent",
|
|
23628
|
+
type: "openzeppelin_access::ownable::ownable::OwnableComponent::Event",
|
|
23629
|
+
kind: "flat"
|
|
23630
|
+
},
|
|
23631
|
+
{
|
|
23632
|
+
name: "InterestRateModelEvents",
|
|
23633
|
+
type: "vesu::interest_rate_model::interest_rate_model_component::Event",
|
|
23634
|
+
kind: "nested"
|
|
23635
|
+
},
|
|
23636
|
+
{
|
|
23637
|
+
name: "UpdateContext",
|
|
23638
|
+
type: "vesu::pool::Pool::UpdateContext",
|
|
23639
|
+
kind: "nested"
|
|
23640
|
+
},
|
|
23641
|
+
{
|
|
23642
|
+
name: "ModifyPosition",
|
|
23643
|
+
type: "vesu::pool::Pool::ModifyPosition",
|
|
23644
|
+
kind: "nested"
|
|
23645
|
+
},
|
|
23646
|
+
{
|
|
23647
|
+
name: "LiquidatePosition",
|
|
23648
|
+
type: "vesu::pool::Pool::LiquidatePosition",
|
|
23649
|
+
kind: "nested"
|
|
23650
|
+
},
|
|
23651
|
+
{
|
|
23652
|
+
name: "Flashloan",
|
|
23653
|
+
type: "vesu::pool::Pool::Flashloan",
|
|
23654
|
+
kind: "nested"
|
|
23655
|
+
},
|
|
23656
|
+
{
|
|
23657
|
+
name: "ModifyDelegation",
|
|
23658
|
+
type: "vesu::pool::Pool::ModifyDelegation",
|
|
23659
|
+
kind: "nested"
|
|
23660
|
+
},
|
|
23661
|
+
{
|
|
23662
|
+
name: "Donate",
|
|
23663
|
+
type: "vesu::pool::Pool::Donate",
|
|
23664
|
+
kind: "nested"
|
|
23665
|
+
},
|
|
23666
|
+
{
|
|
23667
|
+
name: "SetAssetConfig",
|
|
23668
|
+
type: "vesu::pool::Pool::SetAssetConfig",
|
|
23669
|
+
kind: "nested"
|
|
23670
|
+
},
|
|
23671
|
+
{
|
|
23672
|
+
name: "SetOracle",
|
|
23673
|
+
type: "vesu::pool::Pool::SetOracle",
|
|
23674
|
+
kind: "nested"
|
|
23675
|
+
},
|
|
23676
|
+
{
|
|
23677
|
+
name: "SetPairConfig",
|
|
23678
|
+
type: "vesu::pool::Pool::SetPairConfig",
|
|
23679
|
+
kind: "nested"
|
|
23680
|
+
},
|
|
23681
|
+
{
|
|
23682
|
+
name: "ClaimFees",
|
|
23683
|
+
type: "vesu::pool::Pool::ClaimFees",
|
|
23684
|
+
kind: "nested"
|
|
23685
|
+
},
|
|
23686
|
+
{
|
|
23687
|
+
name: "SetFeeRecipient",
|
|
23688
|
+
type: "vesu::pool::Pool::SetFeeRecipient",
|
|
23689
|
+
kind: "nested"
|
|
23690
|
+
},
|
|
23691
|
+
{
|
|
23692
|
+
name: "SetPausingAgent",
|
|
23693
|
+
type: "vesu::pool::Pool::SetPausingAgent",
|
|
23694
|
+
kind: "nested"
|
|
23695
|
+
},
|
|
23696
|
+
{
|
|
23697
|
+
name: "SetCurator",
|
|
23698
|
+
type: "vesu::pool::Pool::SetCurator",
|
|
23699
|
+
kind: "nested"
|
|
23700
|
+
},
|
|
23701
|
+
{
|
|
23702
|
+
name: "NominateCurator",
|
|
23703
|
+
type: "vesu::pool::Pool::NominateCurator",
|
|
23704
|
+
kind: "nested"
|
|
23705
|
+
},
|
|
23706
|
+
{
|
|
23707
|
+
name: "ContractPaused",
|
|
23708
|
+
type: "vesu::pool::Pool::ContractPaused",
|
|
23709
|
+
kind: "nested"
|
|
23710
|
+
},
|
|
23711
|
+
{
|
|
23712
|
+
name: "ContractUnpaused",
|
|
23713
|
+
type: "vesu::pool::Pool::ContractUnpaused",
|
|
23714
|
+
kind: "nested"
|
|
23715
|
+
},
|
|
23716
|
+
{
|
|
23717
|
+
name: "ContractUpgraded",
|
|
23718
|
+
type: "vesu::pool::Pool::ContractUpgraded",
|
|
23719
|
+
kind: "nested"
|
|
23720
|
+
}
|
|
23721
|
+
]
|
|
23722
|
+
}
|
|
23723
|
+
];
|
|
23724
|
+
|
|
23725
|
+
// src/strategies/universal-adapters/vesu-adapter.ts
|
|
23726
|
+
var VesuAmountType = /* @__PURE__ */ ((VesuAmountType2) => {
|
|
23727
|
+
VesuAmountType2[VesuAmountType2["Delta"] = 0] = "Delta";
|
|
23728
|
+
VesuAmountType2[VesuAmountType2["Target"] = 1] = "Target";
|
|
23729
|
+
return VesuAmountType2;
|
|
23730
|
+
})(VesuAmountType || {});
|
|
23731
|
+
var VesuAmountDenomination = /* @__PURE__ */ ((VesuAmountDenomination2) => {
|
|
23732
|
+
VesuAmountDenomination2[VesuAmountDenomination2["Native"] = 0] = "Native";
|
|
23733
|
+
VesuAmountDenomination2[VesuAmountDenomination2["Assets"] = 1] = "Assets";
|
|
23734
|
+
return VesuAmountDenomination2;
|
|
23735
|
+
})(VesuAmountDenomination || {});
|
|
23736
|
+
function getVesuMultiplyParams(isIncrease, params) {
|
|
23737
|
+
if (isIncrease) {
|
|
23738
|
+
const _params2 = params;
|
|
23739
|
+
return {
|
|
23740
|
+
action: new CairoCustomEnum2({ IncreaseLever: {
|
|
23741
|
+
pool_id: _params2.pool_id.toBigInt(),
|
|
23742
|
+
collateral_asset: _params2.collateral_asset.toBigInt(),
|
|
23743
|
+
debt_asset: _params2.debt_asset.toBigInt(),
|
|
23744
|
+
user: _params2.user.toBigInt(),
|
|
23745
|
+
add_margin: BigInt(_params2.add_margin.toWei()),
|
|
23746
|
+
margin_swap: _params2.margin_swap.map((swap) => ({
|
|
23747
|
+
route: swap.route.map((route) => ({
|
|
23748
|
+
pool_key: {
|
|
23749
|
+
token0: route.pool_key.token0.toBigInt(),
|
|
23750
|
+
token1: route.pool_key.token1.toBigInt(),
|
|
23751
|
+
fee: route.pool_key.fee,
|
|
23752
|
+
tick_spacing: route.pool_key.tick_spacing,
|
|
23753
|
+
extension: BigInt(num8.hexToDecimalString(route.pool_key.extension))
|
|
23754
|
+
},
|
|
23755
|
+
sqrt_ratio_limit: uint2567.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
23756
|
+
skip_ahead: BigInt(100)
|
|
23757
|
+
})),
|
|
23758
|
+
token_amount: {
|
|
23759
|
+
token: swap.token_amount.token.toBigInt(),
|
|
23760
|
+
amount: swap.token_amount.amount.toI129()
|
|
23761
|
+
}
|
|
23762
|
+
})),
|
|
23763
|
+
margin_swap_limit_amount: BigInt(_params2.margin_swap_limit_amount.toWei()),
|
|
23764
|
+
lever_swap: _params2.lever_swap.map((swap) => ({
|
|
23765
|
+
route: swap.route.map((route) => ({
|
|
23766
|
+
pool_key: {
|
|
23767
|
+
token0: route.pool_key.token0.toBigInt(),
|
|
23768
|
+
token1: route.pool_key.token1.toBigInt(),
|
|
23769
|
+
fee: route.pool_key.fee,
|
|
23770
|
+
tick_spacing: route.pool_key.tick_spacing,
|
|
23771
|
+
extension: BigInt(num8.hexToDecimalString(route.pool_key.extension))
|
|
23772
|
+
},
|
|
23773
|
+
sqrt_ratio_limit: uint2567.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
23774
|
+
skip_ahead: BigInt(100)
|
|
23775
|
+
})),
|
|
23776
|
+
token_amount: {
|
|
23777
|
+
token: swap.token_amount.token.toBigInt(),
|
|
23778
|
+
amount: swap.token_amount.amount.toI129()
|
|
23779
|
+
}
|
|
23780
|
+
})),
|
|
23781
|
+
lever_swap_limit_amount: BigInt(_params2.lever_swap_limit_amount.toWei())
|
|
23782
|
+
} })
|
|
23783
|
+
};
|
|
23784
|
+
}
|
|
23785
|
+
const _params = params;
|
|
23786
|
+
return {
|
|
23787
|
+
action: new CairoCustomEnum2({ DecreaseLever: {
|
|
23788
|
+
pool_id: _params.pool_id.toBigInt(),
|
|
23789
|
+
collateral_asset: _params.collateral_asset.toBigInt(),
|
|
23790
|
+
debt_asset: _params.debt_asset.toBigInt(),
|
|
23791
|
+
user: _params.user.toBigInt(),
|
|
23792
|
+
sub_margin: BigInt(_params.sub_margin.toWei()),
|
|
23793
|
+
recipient: _params.recipient.toBigInt(),
|
|
23794
|
+
lever_swap: _params.lever_swap.map((swap) => ({
|
|
23795
|
+
route: swap.route.map((route) => ({
|
|
23796
|
+
pool_key: {
|
|
23797
|
+
token0: route.pool_key.token0.toBigInt(),
|
|
23798
|
+
token1: route.pool_key.token1.toBigInt(),
|
|
23799
|
+
fee: route.pool_key.fee,
|
|
23800
|
+
tick_spacing: route.pool_key.tick_spacing,
|
|
23801
|
+
extension: ContractAddr.from(route.pool_key.extension).toBigInt()
|
|
23802
|
+
},
|
|
23803
|
+
sqrt_ratio_limit: uint2567.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
23804
|
+
skip_ahead: BigInt(route.skip_ahead.toWei())
|
|
23805
|
+
})),
|
|
23806
|
+
token_amount: {
|
|
23807
|
+
token: swap.token_amount.token.toBigInt(),
|
|
23808
|
+
amount: swap.token_amount.amount.toI129()
|
|
23809
|
+
}
|
|
23810
|
+
})),
|
|
23811
|
+
lever_swap_limit_amount: BigInt(_params.lever_swap_limit_amount.toWei()),
|
|
23812
|
+
lever_swap_weights: _params.lever_swap_weights.map((weight) => BigInt(weight.toWei())),
|
|
23813
|
+
withdraw_swap: _params.withdraw_swap.map((swap) => ({
|
|
23814
|
+
route: swap.route.map((route) => ({
|
|
23815
|
+
pool_key: {
|
|
23816
|
+
token0: route.pool_key.token0.toBigInt(),
|
|
23817
|
+
token1: route.pool_key.token1.toBigInt(),
|
|
23818
|
+
fee: route.pool_key.fee,
|
|
23819
|
+
tick_spacing: route.pool_key.tick_spacing,
|
|
23820
|
+
extension: ContractAddr.from(route.pool_key.extension).toBigInt()
|
|
23821
|
+
},
|
|
23822
|
+
sqrt_ratio_limit: uint2567.bnToUint256(route.sqrt_ratio_limit.toWei()),
|
|
23823
|
+
skip_ahead: BigInt(route.skip_ahead.toWei())
|
|
23824
|
+
})),
|
|
23825
|
+
token_amount: {
|
|
23826
|
+
token: swap.token_amount.token.toBigInt(),
|
|
23827
|
+
amount: swap.token_amount.amount.toI129()
|
|
23828
|
+
}
|
|
23829
|
+
})),
|
|
23830
|
+
withdraw_swap_limit_amount: BigInt(_params.withdraw_swap_limit_amount.toWei()),
|
|
23831
|
+
withdraw_swap_weights: _params.withdraw_swap_weights.map((weight) => BigInt(weight.toWei())),
|
|
23832
|
+
close_position: _params.close_position
|
|
23833
|
+
} })
|
|
23834
|
+
};
|
|
23835
|
+
}
|
|
23836
|
+
var VesuPools = {
|
|
23837
|
+
Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
|
|
23838
|
+
Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161"),
|
|
23839
|
+
Re7xBTC: ContractAddr.from("0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf")
|
|
23840
|
+
};
|
|
23841
|
+
function getVesuSingletonAddress(vesuPool) {
|
|
23842
|
+
if (vesuPool.eq(VesuPools.Genesis) || vesuPool.eq(VesuPools.Re7xSTRK)) {
|
|
23843
|
+
return { addr: VESU_SINGLETON, isV2: false };
|
|
23844
|
+
}
|
|
23845
|
+
return { addr: vesuPool, isV2: true };
|
|
23846
|
+
}
|
|
23847
|
+
var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
23848
|
+
constructor(config) {
|
|
23849
|
+
super();
|
|
23850
|
+
this.VESU_MULTIPLY = ContractAddr.from("0x027fef272d0a9a3844767c851a64b36fe4f0115141d81134baade95d2b27b781");
|
|
23851
|
+
this.getModifyPosition = () => {
|
|
23852
|
+
const positionData = [0n];
|
|
23853
|
+
const packedArguments = [
|
|
23854
|
+
toBigInt(this.config.poolId.toString()),
|
|
23855
|
+
// pool id
|
|
23856
|
+
toBigInt(this.config.collateral.address.toString()),
|
|
23857
|
+
// collateral
|
|
23858
|
+
toBigInt(this.config.debt.address.toString()),
|
|
23859
|
+
// debt
|
|
23860
|
+
toBigInt(this.config.vaultAllocator.toString()),
|
|
23861
|
+
// vault allocator
|
|
23862
|
+
toBigInt(positionData.length),
|
|
23863
|
+
...positionData
|
|
23864
|
+
];
|
|
23865
|
+
const output = this.constructSimpleLeafData({
|
|
23866
|
+
id: this.config.id,
|
|
23867
|
+
target: getVesuSingletonAddress(this.config.poolId).addr,
|
|
23868
|
+
method: "modify_position",
|
|
23869
|
+
packedArguments
|
|
23870
|
+
});
|
|
23871
|
+
return { leaf: output, callConstructor: this.getModifyPositionCall.bind(this) };
|
|
23872
|
+
};
|
|
23873
|
+
this.getModifyPositionCall = (params) => {
|
|
23874
|
+
const _collateral = {
|
|
23875
|
+
amount_type: this.formatAmountTypeEnum(params.collateralAmount.amount_type),
|
|
23876
|
+
denomination: this.formatAmountDenominationEnum(params.collateralAmount.denomination),
|
|
23877
|
+
value: {
|
|
23878
|
+
abs: uint2567.bnToUint256(params.collateralAmount.value.abs.toWei()),
|
|
23879
|
+
is_negative: params.collateralAmount.value.abs.isZero() ? false : params.collateralAmount.value.is_negative
|
|
23880
|
+
}
|
|
23881
|
+
};
|
|
23882
|
+
logger.verbose(`VesuAdapter::ConstructingModify::Collateral::${JSON.stringify(_collateral)}`);
|
|
23883
|
+
const _debt = {
|
|
23884
|
+
amount_type: this.formatAmountTypeEnum(params.debtAmount.amount_type),
|
|
23885
|
+
denomination: this.formatAmountDenominationEnum(params.debtAmount.denomination),
|
|
23886
|
+
value: {
|
|
23887
|
+
abs: uint2567.bnToUint256(params.debtAmount.value.abs.toWei()),
|
|
23888
|
+
is_negative: params.debtAmount.value.abs.isZero() ? false : params.debtAmount.value.is_negative
|
|
23889
|
+
}
|
|
23890
|
+
};
|
|
23891
|
+
logger.verbose(`VesuAdapter::ConstructingModify::Debt::${JSON.stringify(_debt)}`);
|
|
23892
|
+
const { contract, isV2 } = this.getVesuSingletonContract(getMainnetConfig(), this.config.poolId);
|
|
23893
|
+
const call = contract.populate("modify_position", {
|
|
23894
|
+
params: isV2 ? {
|
|
23895
|
+
collateral_asset: this.config.collateral.address.toBigInt(),
|
|
23896
|
+
debt_asset: this.config.debt.address.toBigInt(),
|
|
23897
|
+
user: this.config.vaultAllocator.toBigInt(),
|
|
23898
|
+
collateral: _collateral,
|
|
23899
|
+
debt: _debt
|
|
23900
|
+
} : {
|
|
23901
|
+
pool_id: this.config.poolId.toBigInt(),
|
|
23902
|
+
collateral_asset: this.config.collateral.address.toBigInt(),
|
|
23903
|
+
debt_asset: this.config.debt.address.toBigInt(),
|
|
23904
|
+
user: this.config.vaultAllocator.toBigInt(),
|
|
23905
|
+
collateral: _collateral,
|
|
23906
|
+
debt: _debt,
|
|
23907
|
+
data: [0]
|
|
23908
|
+
}
|
|
23909
|
+
});
|
|
23910
|
+
return {
|
|
23911
|
+
sanitizer: SIMPLE_SANITIZER,
|
|
23912
|
+
call: {
|
|
23913
|
+
contractAddress: ContractAddr.from(contract.address),
|
|
23914
|
+
selector: hash3.getSelectorFromName("modify_position"),
|
|
23915
|
+
calldata: [
|
|
23916
|
+
...call.calldata
|
|
23917
|
+
]
|
|
23918
|
+
}
|
|
23919
|
+
};
|
|
23920
|
+
};
|
|
23921
|
+
this.getMultiplyAdapter = () => {
|
|
23922
|
+
const packedArguments = [
|
|
23923
|
+
toBigInt(this.config.poolId.toString()),
|
|
23924
|
+
// pool id
|
|
23925
|
+
toBigInt(this.config.collateral.address.toString()),
|
|
23926
|
+
// collateral
|
|
23927
|
+
toBigInt(this.config.debt.address.toString()),
|
|
23928
|
+
// debt
|
|
23929
|
+
toBigInt(this.config.vaultAllocator.toString())
|
|
23930
|
+
// vault allocator
|
|
23931
|
+
];
|
|
23932
|
+
const output = this.constructSimpleLeafData({
|
|
23933
|
+
id: this.config.id,
|
|
23934
|
+
target: this.VESU_MULTIPLY,
|
|
23935
|
+
method: "modify_lever",
|
|
23936
|
+
packedArguments
|
|
23937
|
+
}, SIMPLE_SANITIZER_V2);
|
|
23938
|
+
return { leaf: output, callConstructor: this.getMultiplyCall.bind(this) };
|
|
23939
|
+
};
|
|
23940
|
+
this.getMultiplyCall = (params) => {
|
|
23941
|
+
const isIncrease = params.isIncrease;
|
|
23942
|
+
const multiplyParams = isIncrease ? params.increaseParams : params.decreaseParams;
|
|
23943
|
+
if (!multiplyParams) {
|
|
23944
|
+
throw new Error("Multiply params are not provided");
|
|
23945
|
+
}
|
|
23946
|
+
const multiplyContract = new Contract8({ abi: vesu_multiple_abi_default, address: this.VESU_MULTIPLY.toString(), providerOrAccount: new RpcProvider4({ nodeUrl: "" }) });
|
|
23947
|
+
const call = multiplyContract.populate("modify_lever", {
|
|
23948
|
+
modify_lever_params: getVesuMultiplyParams(isIncrease, {
|
|
23949
|
+
...multiplyParams,
|
|
23950
|
+
user: this.config.vaultAllocator,
|
|
23951
|
+
pool_id: this.config.poolId,
|
|
23952
|
+
collateral_asset: this.config.collateral.address,
|
|
23953
|
+
debt_asset: this.config.debt.address,
|
|
23954
|
+
recipient: this.config.vaultAllocator
|
|
23955
|
+
})
|
|
23956
|
+
});
|
|
23957
|
+
return {
|
|
23958
|
+
sanitizer: SIMPLE_SANITIZER_V2,
|
|
23959
|
+
call: {
|
|
23960
|
+
contractAddress: this.VESU_MULTIPLY,
|
|
23961
|
+
selector: hash3.getSelectorFromName("modify_lever"),
|
|
23962
|
+
calldata: [
|
|
23963
|
+
...call.calldata
|
|
23964
|
+
]
|
|
23965
|
+
}
|
|
23966
|
+
};
|
|
22049
23967
|
};
|
|
22050
23968
|
this.getVesuModifyDelegationAdapter = (id) => {
|
|
22051
23969
|
return () => {
|
|
22052
23970
|
const packedArguments = [
|
|
22053
|
-
toBigInt(this.config.poolId.toString()),
|
|
22054
|
-
// pool id
|
|
22055
23971
|
toBigInt(this.VESU_MULTIPLY.toString())
|
|
22056
23972
|
// vault allocator
|
|
22057
23973
|
];
|
|
22058
23974
|
const output = this.constructSimpleLeafData({
|
|
22059
23975
|
id,
|
|
22060
|
-
target: this.
|
|
23976
|
+
target: getVesuSingletonAddress(this.config.poolId).addr,
|
|
22061
23977
|
method: "modify_delegation",
|
|
22062
23978
|
packedArguments
|
|
22063
23979
|
}, SIMPLE_SANITIZER_V2);
|
|
@@ -22065,8 +23981,12 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
22065
23981
|
};
|
|
22066
23982
|
};
|
|
22067
23983
|
this.getVesuModifyDelegationCall = (params) => {
|
|
22068
|
-
const
|
|
22069
|
-
const
|
|
23984
|
+
const VESU_SINGLETON2 = getVesuSingletonAddress(this.config.poolId).addr;
|
|
23985
|
+
const { contract, isV2 } = this.getVesuSingletonContract(getMainnetConfig(), this.config.poolId);
|
|
23986
|
+
const call = contract.populate("modify_delegation", isV2 ? {
|
|
23987
|
+
delegatee: this.VESU_MULTIPLY.toBigInt(),
|
|
23988
|
+
delegation: params.delegation
|
|
23989
|
+
} : {
|
|
22070
23990
|
pool_id: this.config.poolId.toBigInt(),
|
|
22071
23991
|
delegatee: this.VESU_MULTIPLY.toBigInt(),
|
|
22072
23992
|
delegation: params.delegation
|
|
@@ -22074,7 +23994,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
22074
23994
|
return {
|
|
22075
23995
|
sanitizer: SIMPLE_SANITIZER_V2,
|
|
22076
23996
|
call: {
|
|
22077
|
-
contractAddress:
|
|
23997
|
+
contractAddress: VESU_SINGLETON2,
|
|
22078
23998
|
selector: hash3.getSelectorFromName("modify_delegation"),
|
|
22079
23999
|
calldata: [
|
|
22080
24000
|
...call.calldata
|
|
@@ -22156,8 +24076,13 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
22156
24076
|
}
|
|
22157
24077
|
throw new Error(`Unknown VesuAmountDenomination: ${denomination}`);
|
|
22158
24078
|
}
|
|
22159
|
-
getVesuSingletonContract(config) {
|
|
22160
|
-
|
|
24079
|
+
getVesuSingletonContract(config, poolId) {
|
|
24080
|
+
const { addr: VESU_SINGLETON2, isV2 } = getVesuSingletonAddress(poolId);
|
|
24081
|
+
const ABI = isV2 ? vesu_pool_v2_abi_default : vesu_singleton_abi_default;
|
|
24082
|
+
return {
|
|
24083
|
+
contract: new Contract8({ abi: ABI, address: VESU_SINGLETON2.address, providerOrAccount: config.provider }),
|
|
24084
|
+
isV2
|
|
24085
|
+
};
|
|
22161
24086
|
}
|
|
22162
24087
|
async getLTVConfig(config) {
|
|
22163
24088
|
const CACHE_KEY = "ltv_config";
|
|
@@ -22165,8 +24090,16 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
22165
24090
|
if (cacheData) {
|
|
22166
24091
|
return cacheData;
|
|
22167
24092
|
}
|
|
22168
|
-
const
|
|
22169
|
-
|
|
24093
|
+
const { contract, isV2 } = await this.getVesuSingletonContract(config, this.config.poolId);
|
|
24094
|
+
let ltv = 0;
|
|
24095
|
+
if (isV2) {
|
|
24096
|
+
const output = await contract.call("pair_config", [this.config.collateral.address.address, this.config.debt.address.address]);
|
|
24097
|
+
ltv = Number(output.max_ltv) / 1e18;
|
|
24098
|
+
} else {
|
|
24099
|
+
const output = await contract.call("ltv_config", [this.config.poolId.address, this.config.collateral.address.address, this.config.debt.address.address]);
|
|
24100
|
+
ltv = Number(output.max_ltv) / 1e18;
|
|
24101
|
+
}
|
|
24102
|
+
this.setCache(CACHE_KEY, ltv, 3e5);
|
|
22170
24103
|
return this.getCache(CACHE_KEY);
|
|
22171
24104
|
}
|
|
22172
24105
|
async getPositions(config) {
|
|
@@ -22178,14 +24111,17 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
22178
24111
|
if (cacheData) {
|
|
22179
24112
|
return cacheData;
|
|
22180
24113
|
}
|
|
22181
|
-
const
|
|
22182
|
-
|
|
24114
|
+
const { contract, isV2 } = this.getVesuSingletonContract(config, this.config.poolId);
|
|
24115
|
+
const output = await contract.call(isV2 ? "position" : "position_unsafe", [
|
|
24116
|
+
...isV2 ? [] : [this.config.poolId.address],
|
|
24117
|
+
// exclude pool id in v2
|
|
22183
24118
|
this.config.collateral.address.address,
|
|
22184
24119
|
this.config.debt.address.address,
|
|
22185
24120
|
this.config.vaultAllocator.address
|
|
22186
24121
|
]);
|
|
22187
24122
|
const token1Price = await this.pricer.getPrice(this.config.collateral.symbol);
|
|
22188
24123
|
const token2Price = await this.pricer.getPrice(this.config.debt.symbol);
|
|
24124
|
+
logger.verbose(`VesuAdapter::getPositions token1Price: ${token1Price.price}, token2Price: ${token2Price.price}`);
|
|
22189
24125
|
const collateralAmount = Web3Number.fromWei(output["1"].toString(), this.config.collateral.decimals);
|
|
22190
24126
|
const debtAmount = Web3Number.fromWei(output["2"].toString(), this.config.debt.decimals);
|
|
22191
24127
|
const value = [{
|
|
@@ -22211,8 +24147,10 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
22211
24147
|
if (cacheData) {
|
|
22212
24148
|
return cacheData;
|
|
22213
24149
|
}
|
|
22214
|
-
const
|
|
22215
|
-
|
|
24150
|
+
const { contract, isV2 } = this.getVesuSingletonContract(config, this.config.poolId);
|
|
24151
|
+
const output = await contract.call(isV2 ? "check_collateralization" : "check_collateralization_unsafe", [
|
|
24152
|
+
...isV2 ? [] : [this.config.poolId.address],
|
|
24153
|
+
// exclude pool id in v2
|
|
22216
24154
|
this.config.collateral.address.address,
|
|
22217
24155
|
this.config.debt.address.address,
|
|
22218
24156
|
this.config.vaultAllocator.address
|
|
@@ -22272,7 +24210,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
22272
24210
|
);
|
|
22273
24211
|
pools = data.data;
|
|
22274
24212
|
for (const pool of vesu_pools_default.data) {
|
|
22275
|
-
const found = pools.find((d) => d.id
|
|
24213
|
+
const found = pools.find((d) => ContractAddr.from(d.id).eqString(pool.id));
|
|
22276
24214
|
if (!found) {
|
|
22277
24215
|
logger.verbose(`VesuRebalance: pools: ${JSON.stringify(pools)}`);
|
|
22278
24216
|
logger.verbose(
|
|
@@ -24662,12 +26600,12 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
24662
26600
|
const rewardAPYs = [];
|
|
24663
26601
|
for (const [index, pool] of pools.entries()) {
|
|
24664
26602
|
const vesuAdapter = vesuAdapters[index];
|
|
24665
|
-
const collateralAsset = pool.assets.find((a) => a.symbol === vesuAdapter.config.collateral.symbol)?.stats;
|
|
24666
|
-
const debtAsset = pool.assets.find((a) => a.symbol === vesuAdapter.config.debt.symbol)?.stats;
|
|
26603
|
+
const collateralAsset = pool.assets.find((a) => a.symbol.toLowerCase() === vesuAdapter.config.collateral.symbol.toLowerCase())?.stats;
|
|
26604
|
+
const debtAsset = pool.assets.find((a) => a.symbol.toLowerCase() === vesuAdapter.config.debt.symbol.toLowerCase())?.stats;
|
|
24667
26605
|
const supplyApy = Number(collateralAsset.supplyApy.value || 0) / 1e18;
|
|
24668
26606
|
const lstAPY = Number(collateralAsset.lstApr?.value || 0) / 1e18;
|
|
24669
26607
|
baseAPYs.push(...[supplyApy + lstAPY, Number(debtAsset.borrowApr.value) / 1e18]);
|
|
24670
|
-
rewardAPYs.push(...[Number(collateralAsset.defiSpringSupplyApr
|
|
26608
|
+
rewardAPYs.push(...[Number(collateralAsset.defiSpringSupplyApr?.value || "0") / 1e18, 0]);
|
|
24671
26609
|
}
|
|
24672
26610
|
logger.verbose(`${this.metadata.name}::netAPY: baseAPYs: ${JSON.stringify(baseAPYs)}`);
|
|
24673
26611
|
logger.verbose(`${this.metadata.name}::netAPY: rewardAPYs: ${JSON.stringify(rewardAPYs)}`);
|
|
@@ -24737,6 +26675,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
24737
26675
|
const underlying = this.asset();
|
|
24738
26676
|
let vesuAum = Web3Number.fromWei("0", underlying.decimals);
|
|
24739
26677
|
let tokenUnderlyingPrice = await this.pricer.getPrice(this.asset().symbol);
|
|
26678
|
+
logger.verbose(`${this.getTag()} tokenUnderlyingPrice: ${tokenUnderlyingPrice.price}`);
|
|
24740
26679
|
if (legAUM[0].token.address.eq(underlying.address)) {
|
|
24741
26680
|
vesuAum = vesuAum.plus(legAUM[0].amount);
|
|
24742
26681
|
} else {
|
|
@@ -24837,7 +26776,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
24837
26776
|
amount: unusedBalance.amount,
|
|
24838
26777
|
usdValue: unusedBalance.usdValue,
|
|
24839
26778
|
token: this.asset(),
|
|
24840
|
-
remarks: "Unused Balance"
|
|
26779
|
+
remarks: "Unused Balance (may not include recent deposits)"
|
|
24841
26780
|
}];
|
|
24842
26781
|
}
|
|
24843
26782
|
getSetManagerCall(strategist, root = this.getMerkleRoot()) {
|
|
@@ -25175,8 +27114,8 @@ function getLooperSettings(token1Symbol, token2Symbol, vaultSettings, pool1, poo
|
|
|
25175
27114
|
vaultSettings.leafAdapters.push(commonAdapter.getFlashloanAdapter.bind(commonAdapter));
|
|
25176
27115
|
vaultSettings.leafAdapters.push(vesuAdapterUSDCETH.getModifyPosition.bind(vesuAdapterUSDCETH));
|
|
25177
27116
|
vaultSettings.leafAdapters.push(vesuAdapterETHUSDC.getModifyPosition.bind(vesuAdapterETHUSDC));
|
|
25178
|
-
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(USDCToken.address,
|
|
25179
|
-
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(ETHToken.address,
|
|
27117
|
+
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(USDCToken.address, VESU_SINGLETON, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
|
|
27118
|
+
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(ETHToken.address, VESU_SINGLETON, "approve_token2" /* APPROVE_TOKEN2 */).bind(commonAdapter));
|
|
25180
27119
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(USDCToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
|
|
25181
27120
|
vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
|
|
25182
27121
|
vaultSettings.leafAdapters.push(vesuAdapterUSDCETH.getDefispringRewardsAdapter("defispring_rewards" /* DEFISPRING_REWARDS */).bind(vesuAdapterUSDCETH));
|
|
@@ -25480,7 +27419,7 @@ var UniversalStrategies = [
|
|
|
25480
27419
|
// src/strategies/universal-lst-muliplier-strategy.tsx
|
|
25481
27420
|
import { Contract as Contract10, uint256 as uint2569 } from "starknet";
|
|
25482
27421
|
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
25483
|
-
var UniversalLstMultiplierStrategy = class extends UniversalStrategy {
|
|
27422
|
+
var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy extends UniversalStrategy {
|
|
25484
27423
|
constructor(config, pricer, metadata) {
|
|
25485
27424
|
super(config, pricer, metadata);
|
|
25486
27425
|
this.quoteAmountToFetchPrice = new Web3Number(1, 18);
|
|
@@ -25492,8 +27431,15 @@ var UniversalLstMultiplierStrategy = class extends UniversalStrategy {
|
|
|
25492
27431
|
this.quoteAmountToFetchPrice = new Web3Number(0.01, this.asset().decimals);
|
|
25493
27432
|
}
|
|
25494
27433
|
}
|
|
27434
|
+
asset() {
|
|
27435
|
+
const vesuAdapter1 = this.getAdapter("vesu_leg1_adapter" /* VESU_LEG1 */);
|
|
27436
|
+
return vesuAdapter1.config.collateral;
|
|
27437
|
+
}
|
|
27438
|
+
getTag() {
|
|
27439
|
+
return `${_UniversalLstMultiplierStrategy.name}:${this.metadata.name}`;
|
|
27440
|
+
}
|
|
25495
27441
|
// only one leg is used
|
|
25496
|
-
// todo support lending assets of underlying as well
|
|
27442
|
+
// todo support lending assets of underlying as well (like if xSTRK looping is not viable, simply supply STRK)
|
|
25497
27443
|
getVesuAdapters() {
|
|
25498
27444
|
const vesuAdapter1 = this.getAdapter("vesu_leg1_adapter" /* VESU_LEG1 */);
|
|
25499
27445
|
vesuAdapter1.pricer = this.pricer;
|
|
@@ -25502,9 +27448,13 @@ var UniversalLstMultiplierStrategy = class extends UniversalStrategy {
|
|
|
25502
27448
|
}
|
|
25503
27449
|
// not applicable for this strategy
|
|
25504
27450
|
// No rewards on collateral or borrowing of LST assets
|
|
25505
|
-
|
|
25506
|
-
|
|
25507
|
-
|
|
27451
|
+
async getRewardsAUM(prevAum) {
|
|
27452
|
+
const lstToken = this.asset();
|
|
27453
|
+
if (lstToken.symbol === "xSTRK") {
|
|
27454
|
+
return super.getRewardsAUM(prevAum);
|
|
27455
|
+
}
|
|
27456
|
+
return Web3Number.fromWei("0", lstToken.decimals);
|
|
27457
|
+
}
|
|
25508
27458
|
async getLSTDexPrice() {
|
|
25509
27459
|
const ekuboQuoter = new EkuboQuoter(this.config);
|
|
25510
27460
|
const lstTokenInfo = this.asset();
|
|
@@ -25527,6 +27477,7 @@ var UniversalLstMultiplierStrategy = class extends UniversalStrategy {
|
|
|
25527
27477
|
async getVesuMultiplyCall(params) {
|
|
25528
27478
|
const [vesuAdapter1] = this.getVesuAdapters();
|
|
25529
27479
|
const legLTV = await vesuAdapter1.getLTVConfig(this.config);
|
|
27480
|
+
logger.verbose(`${this.getTag()}::getVesuMultiplyCall legLTV: ${legLTV}`);
|
|
25530
27481
|
const existingPositions = await vesuAdapter1.getPositions(this.config);
|
|
25531
27482
|
const collateralisation = await vesuAdapter1.getCollateralization(this.config);
|
|
25532
27483
|
const existingCollateralInfo = existingPositions[0];
|
|
@@ -25540,8 +27491,11 @@ var UniversalLstMultiplierStrategy = class extends UniversalStrategy {
|
|
|
25540
27491
|
const addedCollateral = params.leg1DepositAmount.multipliedBy(params.isDeposit ? 1 : -1);
|
|
25541
27492
|
logger.verbose(`${this.getTag()}::getVesuMultiplyCall addedCollateral: ${addedCollateral}`);
|
|
25542
27493
|
const numeratorPart1 = existingCollateralInfo.amount.plus(addedCollateral).multipliedBy(collateralPrice).multipliedBy(legLTV);
|
|
27494
|
+
logger.verbose(`${this.getTag()}::getVesuMultiplyCall numeratorPart1: ${numeratorPart1}`);
|
|
25543
27495
|
const numeratorPart2 = existingDebtInfo.amount.multipliedBy(debtPrice).multipliedBy(this.metadata.additionalInfo.targetHealthFactor);
|
|
27496
|
+
logger.verbose(`${this.getTag()}::getVesuMultiplyCall numeratorPart2: ${numeratorPart2}`);
|
|
25544
27497
|
const denominatorPart = this.metadata.additionalInfo.targetHealthFactor - legLTV / dexPrice;
|
|
27498
|
+
logger.verbose(`${this.getTag()}::getVesuMultiplyCall denominatorPart: ${denominatorPart}`);
|
|
25545
27499
|
const x_debt_usd = numeratorPart1.minus(numeratorPart2).dividedBy(denominatorPart);
|
|
25546
27500
|
logger.verbose(`${this.getTag()}::getVesuMultiplyCall x_debt_usd: ${x_debt_usd}`);
|
|
25547
27501
|
logger.debug(`${this.getTag()}::getVesuMultiplyCall numeratorPart1: ${numeratorPart1}, numeratorPart2: ${numeratorPart2}, denominatorPart: ${denominatorPart}`);
|
|
@@ -25577,10 +27531,15 @@ var UniversalLstMultiplierStrategy = class extends UniversalStrategy {
|
|
|
25577
27531
|
* @param params marginAmount is in LST, debtAmount is in underlying
|
|
25578
27532
|
*/
|
|
25579
27533
|
async getModifyLeverCall(params) {
|
|
27534
|
+
logger.verbose(`${this.getTag()}::getModifyLeverCall marginAmount: ${params.marginAmount}, debtAmount: ${params.debtAmount}, lstDexPriceInUnderlying: ${params.lstDexPriceInUnderlying}, isIncrease: ${params.isIncrease}`);
|
|
25580
27535
|
assert(!params.marginAmount.isZero() || !params.debtAmount.isZero(), "Deposit/debt must be non-0");
|
|
25581
27536
|
const [vesuAdapter1] = this.getVesuAdapters();
|
|
25582
27537
|
const lstTokenInfo = this.asset();
|
|
25583
27538
|
const lstUnderlyingTokenInfo = vesuAdapter1.config.debt;
|
|
27539
|
+
const maxAmounts = lstTokenInfo.symbol == "xSTRK" ? 5e5 : 0.5;
|
|
27540
|
+
if (params.marginAmount.greaterThan(maxAmounts)) {
|
|
27541
|
+
throw new Error(`Margin amount is greater than max amount: ${params.marginAmount.toNumber()} > ${maxAmounts}`);
|
|
27542
|
+
}
|
|
25584
27543
|
const proofsIDs = [];
|
|
25585
27544
|
const manageCalls = [];
|
|
25586
27545
|
if (params.marginAmount.greaterThan(0)) {
|
|
@@ -25594,9 +27553,9 @@ var UniversalLstMultiplierStrategy = class extends UniversalStrategy {
|
|
|
25594
27553
|
manageCalls.push(manageCall1);
|
|
25595
27554
|
}
|
|
25596
27555
|
const lstDexPriceInUnderlying = params.lstDexPriceInUnderlying;
|
|
27556
|
+
const lstTrueExchangeRate = await this.getLSTExchangeRate();
|
|
25597
27557
|
const ekuboQuoter = new EkuboQuoter(this.config);
|
|
25598
|
-
const
|
|
25599
|
-
const MAX_SLIPPAGE = 0.01;
|
|
27558
|
+
const MAX_SLIPPAGE = 2e-3;
|
|
25600
27559
|
const fromToken = params.isIncrease ? lstUnderlyingTokenInfo : lstTokenInfo;
|
|
25601
27560
|
const toToken = params.isIncrease ? lstTokenInfo : lstUnderlyingTokenInfo;
|
|
25602
27561
|
const leverSwapQuote = await ekuboQuoter.getQuote(
|
|
@@ -25605,10 +27564,22 @@ var UniversalLstMultiplierStrategy = class extends UniversalStrategy {
|
|
|
25605
27564
|
params.debtAmount
|
|
25606
27565
|
// negative for exact amount out
|
|
25607
27566
|
);
|
|
25608
|
-
|
|
27567
|
+
logger.verbose(`${this.getTag()}::getModifyLeverCall leverSwapQuote: ${JSON.stringify(leverSwapQuote)}`);
|
|
27568
|
+
assert(leverSwapQuote.price_impact < 0.01, "getIncreaseLeverCall: Price impact is too high [Debt swap]");
|
|
25609
27569
|
const leverSwap = ekuboQuoter.getVesuMultiplyQuote(leverSwapQuote, fromToken, toToken);
|
|
25610
|
-
|
|
25611
|
-
|
|
27570
|
+
logger.verbose(`${this.getTag()}::getModifyLeverCall leverSwap: ${JSON.stringify(leverSwap)}`);
|
|
27571
|
+
let minLSTReceived = params.debtAmount.dividedBy(lstDexPriceInUnderlying).multipliedBy(1 - MAX_SLIPPAGE);
|
|
27572
|
+
const minLSTReceivedAsPerTruePrice = params.debtAmount.dividedBy(lstTrueExchangeRate);
|
|
27573
|
+
if (minLSTReceived < minLSTReceivedAsPerTruePrice) {
|
|
27574
|
+
minLSTReceived = minLSTReceivedAsPerTruePrice;
|
|
27575
|
+
}
|
|
27576
|
+
logger.verbose(`${this.getTag()}::getModifyLeverCall minLSTReceivedAsPerTruePrice: ${minLSTReceivedAsPerTruePrice}, minLSTReceived: ${minLSTReceived}`);
|
|
27577
|
+
let maxUsedCollateral = params.debtAmount.abs().dividedBy(lstDexPriceInUnderlying).multipliedBy(1 + MAX_SLIPPAGE);
|
|
27578
|
+
const maxUsedCollateralInLST = params.debtAmount.abs().dividedBy(lstTrueExchangeRate).multipliedBy(1.005);
|
|
27579
|
+
logger.verbose(`${this.getTag()}::getModifyLeverCall maxUsedCollateralInLST: ${maxUsedCollateralInLST}, maxUsedCollateral: ${maxUsedCollateral}`);
|
|
27580
|
+
if (maxUsedCollateralInLST > maxUsedCollateral) {
|
|
27581
|
+
maxUsedCollateral = maxUsedCollateralInLST;
|
|
27582
|
+
}
|
|
25612
27583
|
const STEP2_ID = "switch_delegation_on" /* SWITCH_DELEGATION_ON */;
|
|
25613
27584
|
const manage2Info = this.getProofs(STEP2_ID);
|
|
25614
27585
|
const manageCall2 = manage2Info.callConstructor({
|
|
@@ -25620,10 +27591,10 @@ var UniversalLstMultiplierStrategy = class extends UniversalStrategy {
|
|
|
25620
27591
|
isIncrease: true,
|
|
25621
27592
|
increaseParams: {
|
|
25622
27593
|
add_margin: params.marginAmount,
|
|
25623
|
-
margin_swap:
|
|
27594
|
+
margin_swap: [],
|
|
25624
27595
|
margin_swap_limit_amount: Web3Number.fromWei(0, this.asset().decimals),
|
|
25625
27596
|
lever_swap: leverSwap,
|
|
25626
|
-
lever_swap_limit_amount:
|
|
27597
|
+
lever_swap_limit_amount: minLSTReceived
|
|
25627
27598
|
}
|
|
25628
27599
|
} : {
|
|
25629
27600
|
isIncrease: false,
|
|
@@ -25778,7 +27749,7 @@ var hyperxWBTC = {
|
|
|
25778
27749
|
manager: ContractAddr.from("0x75866db44c81e6986f06035206ee9c7d15833ddb22d6a22c016cfb5c866a491"),
|
|
25779
27750
|
vaultAllocator: ContractAddr.from("0x57b5c1bb457b5e840a2714ae53ada87d77be2f3fd33a59b4fe709ef20c020c1"),
|
|
25780
27751
|
redeemRequestNFT: ContractAddr.from("0x7a5dc288325456f05e70e9616e16bc02ffbe448f4b89f80b47c0970b989c7c"),
|
|
25781
|
-
aumOracle: ContractAddr.from(""),
|
|
27752
|
+
aumOracle: ContractAddr.from("0x258f8a0ca0d21f542e48ad89d00e92dc4d9db4999084f50ef9c22dfb1e83023"),
|
|
25782
27753
|
leafAdapters: [],
|
|
25783
27754
|
adapters: [],
|
|
25784
27755
|
targetHealthFactor: 1.1,
|
|
@@ -25789,7 +27760,7 @@ var hyperxtBTC = {
|
|
|
25789
27760
|
manager: ContractAddr.from("0xc4cc3e08029a0ae076f5fdfca70575abb78d23c5cd1c49a957f7e697885401"),
|
|
25790
27761
|
vaultAllocator: ContractAddr.from("0x50bbd4fe69f841ecb13b2619fe50ebfa4e8944671b5d0ebf7868fd80c61b31e"),
|
|
25791
27762
|
redeemRequestNFT: ContractAddr.from("0xeac9032f02057779816e38a6cb9185d12d86b3aacc9949b96b36de359c1e3"),
|
|
25792
|
-
aumOracle: ContractAddr.from(""),
|
|
27763
|
+
aumOracle: ContractAddr.from("0x7e0d05cb7ba3f7db77a36c21c21583b5a524c2e685c08c24b3554911fb4a039"),
|
|
25793
27764
|
leafAdapters: [],
|
|
25794
27765
|
adapters: [],
|
|
25795
27766
|
targetHealthFactor: 1.1,
|
|
@@ -25800,7 +27771,7 @@ var hyperxsBTC = {
|
|
|
25800
27771
|
manager: ContractAddr.from("0xc9ac023090625b0be3f6532ca353f086746f9c09f939dbc1b2613f09e5f821"),
|
|
25801
27772
|
vaultAllocator: ContractAddr.from("0x60c2d856936b975459a5b4eb28b8672d91f757bd76cebb6241f8d670185dc01"),
|
|
25802
27773
|
redeemRequestNFT: ContractAddr.from("0x429e8ee8bc7ecd1ade72630d350a2e0f10f9a2507c45f188ba17fe8f2ab4cf3"),
|
|
25803
|
-
aumOracle: ContractAddr.from(""),
|
|
27774
|
+
aumOracle: ContractAddr.from("0x149298ade3e79ec6cbdac6cfad289c57504eaf54e590939136ed1ceca60c345"),
|
|
25804
27775
|
leafAdapters: [],
|
|
25805
27776
|
adapters: [],
|
|
25806
27777
|
targetHealthFactor: 1.1,
|
|
@@ -25835,7 +27806,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
|
|
|
25835
27806
|
launchBlock: 0,
|
|
25836
27807
|
type: "Other",
|
|
25837
27808
|
depositTokens: [Global.getDefaultTokens().find((token) => token.symbol === lstSymbol)],
|
|
25838
|
-
additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, VesuPools.Re7xSTRK),
|
|
27809
|
+
additionalInfo: getLooperSettings2(lstSymbol, underlyingSymbol, addresses, lstSymbol === "xSTRK" ? VesuPools.Re7xSTRK : VesuPools.Re7xBTC),
|
|
25839
27810
|
risk: {
|
|
25840
27811
|
riskFactor: _riskFactor4,
|
|
25841
27812
|
netRisk: _riskFactor4.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor4.reduce((acc, curr) => acc + curr.weight, 0),
|
|
@@ -25851,10 +27822,10 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
|
|
|
25851
27822
|
}
|
|
25852
27823
|
var HyperLSTStrategies = [
|
|
25853
27824
|
getStrategySettings("xSTRK", "STRK", hyperxSTRK, false),
|
|
25854
|
-
getStrategySettings("xWBTC", "WBTC", hyperxWBTC,
|
|
25855
|
-
getStrategySettings("xtBTC", "tBTC", hyperxtBTC,
|
|
25856
|
-
getStrategySettings("xsBTC", "solvBTC", hyperxsBTC,
|
|
25857
|
-
getStrategySettings("xLBTC", "LBTC", hyperxLBTC,
|
|
27825
|
+
getStrategySettings("xWBTC", "WBTC", hyperxWBTC, false),
|
|
27826
|
+
getStrategySettings("xtBTC", "tBTC", hyperxtBTC, false),
|
|
27827
|
+
getStrategySettings("xsBTC", "solvBTC", hyperxsBTC, false),
|
|
27828
|
+
getStrategySettings("xLBTC", "LBTC", hyperxLBTC, false)
|
|
25858
27829
|
];
|
|
25859
27830
|
|
|
25860
27831
|
// src/modules/pricer-lst.ts
|
|
@@ -26384,6 +28355,7 @@ export {
|
|
|
26384
28355
|
getRiskColor,
|
|
26385
28356
|
getRiskExplaination,
|
|
26386
28357
|
getTrovesEndpoint,
|
|
28358
|
+
getVesuSingletonAddress,
|
|
26387
28359
|
highlightTextWithLinks,
|
|
26388
28360
|
logger
|
|
26389
28361
|
};
|