@defisaver/positions-sdk 0.0.165 → 0.0.166-dev-liquity-v2
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/.mocharc.json +4 -4
- package/.nvmrc +1 -1
- package/README.md +69 -69
- package/cjs/config/contracts.d.ts +43 -0
- package/cjs/config/contracts.js +6 -0
- package/cjs/contracts.d.ts +1 -0
- package/cjs/contracts.js +2 -1
- package/cjs/helpers/index.d.ts +1 -0
- package/cjs/helpers/index.js +2 -1
- package/cjs/helpers/liquityV2Helpers/index.d.ts +12 -0
- package/cjs/helpers/liquityV2Helpers/index.js +53 -0
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +3 -1
- package/cjs/liquityV2/index.d.ts +10 -0
- package/cjs/liquityV2/index.js +94 -0
- package/cjs/markets/index.d.ts +1 -0
- package/cjs/markets/index.js +3 -1
- package/cjs/markets/liquityV2/index.d.ts +8 -0
- package/cjs/markets/liquityV2/index.js +34 -0
- package/cjs/staking/staking.d.ts +1 -0
- package/cjs/staking/staking.js +10 -2
- package/cjs/types/contracts/generated/LiquityV2View.d.ts +222 -0
- package/cjs/types/contracts/generated/LiquityV2View.js +5 -0
- package/cjs/types/contracts/generated/index.d.ts +1 -0
- package/cjs/types/index.d.ts +1 -0
- package/cjs/types/index.js +1 -0
- package/cjs/types/liquityV2.d.ts +73 -0
- package/cjs/types/liquityV2.js +8 -0
- package/esm/config/contracts.d.ts +43 -0
- package/esm/config/contracts.js +6 -0
- package/esm/contracts.d.ts +1 -0
- package/esm/contracts.js +1 -0
- package/esm/helpers/index.d.ts +1 -0
- package/esm/helpers/index.js +1 -0
- package/esm/helpers/liquityV2Helpers/index.d.ts +12 -0
- package/esm/helpers/liquityV2Helpers/index.js +45 -0
- package/esm/index.d.ts +2 -1
- package/esm/index.js +2 -1
- package/esm/liquityV2/index.d.ts +10 -0
- package/esm/liquityV2/index.js +86 -0
- package/esm/markets/index.d.ts +1 -0
- package/esm/markets/index.js +1 -0
- package/esm/markets/liquityV2/index.d.ts +8 -0
- package/esm/markets/liquityV2/index.js +28 -0
- package/esm/staking/staking.d.ts +1 -0
- package/esm/staking/staking.js +8 -1
- package/esm/types/contracts/generated/LiquityV2View.d.ts +222 -0
- package/esm/types/contracts/generated/LiquityV2View.js +4 -0
- package/esm/types/contracts/generated/index.d.ts +1 -0
- package/esm/types/index.d.ts +1 -0
- package/esm/types/index.js +1 -0
- package/esm/types/liquityV2.d.ts +73 -0
- package/esm/types/liquityV2.js +5 -0
- package/package.json +49 -48
- package/src/aaveV2/index.ts +227 -227
- package/src/aaveV3/index.ts +590 -590
- package/src/assets/index.ts +60 -60
- package/src/chickenBonds/index.ts +123 -123
- package/src/compoundV2/index.ts +219 -219
- package/src/compoundV3/index.ts +281 -281
- package/src/config/contracts.js +1040 -1034
- package/src/constants/index.ts +6 -6
- package/src/contracts.ts +130 -128
- package/src/curveUsd/index.ts +229 -229
- package/src/exchange/index.ts +17 -17
- package/src/helpers/aaveHelpers/index.ts +194 -194
- package/src/helpers/chickenBondsHelpers/index.ts +23 -23
- package/src/helpers/compoundHelpers/index.ts +246 -246
- package/src/helpers/curveUsdHelpers/index.ts +40 -40
- package/src/helpers/index.ts +9 -8
- package/src/helpers/liquityV2Helpers/index.ts +69 -0
- package/src/helpers/llamaLendHelpers/index.ts +53 -53
- package/src/helpers/makerHelpers/index.ts +94 -94
- package/src/helpers/morphoBlueHelpers/index.ts +115 -115
- package/src/helpers/sparkHelpers/index.ts +150 -150
- package/src/index.ts +48 -46
- package/src/liquity/index.ts +116 -116
- package/src/liquityV2/index.ts +111 -0
- package/src/llamaLend/index.ts +275 -275
- package/src/maker/index.ts +117 -117
- package/src/markets/aave/index.ts +152 -152
- package/src/markets/aave/marketAssets.ts +46 -46
- package/src/markets/compound/index.ts +173 -173
- package/src/markets/compound/marketsAssets.ts +64 -64
- package/src/markets/curveUsd/index.ts +69 -69
- package/src/markets/index.ts +23 -22
- package/src/markets/liquityV2/index.ts +31 -0
- package/src/markets/llamaLend/contractAddresses.ts +141 -141
- package/src/markets/llamaLend/index.ts +235 -235
- package/src/markets/morphoBlue/index.ts +728 -728
- package/src/markets/spark/index.ts +29 -29
- package/src/markets/spark/marketAssets.ts +10 -10
- package/src/moneymarket/moneymarketCommonService.ts +80 -80
- package/src/morphoAaveV2/index.ts +256 -256
- package/src/morphoAaveV3/index.ts +630 -630
- package/src/morphoBlue/index.ts +171 -171
- package/src/multicall/index.ts +22 -22
- package/src/services/dsrService.ts +15 -15
- package/src/services/priceService.ts +21 -21
- package/src/services/utils.ts +54 -54
- package/src/setup.ts +8 -8
- package/src/spark/index.ts +424 -424
- package/src/staking/staking.ts +218 -211
- package/src/types/aave.ts +262 -262
- package/src/types/chickenBonds.ts +45 -45
- package/src/types/common.ts +84 -84
- package/src/types/compound.ts +129 -129
- package/src/types/contracts/generated/LiquityV2View.ts +280 -0
- package/src/types/contracts/generated/index.ts +1 -0
- package/src/types/curveUsd.ts +118 -118
- package/src/types/index.ts +9 -8
- package/src/types/liquity.ts +30 -30
- package/src/types/liquityV2.ts +79 -0
- package/src/types/llamaLend.ts +155 -155
- package/src/types/maker.ts +50 -50
- package/src/types/morphoBlue.ts +146 -146
- package/src/types/spark.ts +127 -127
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Web3 from 'web3';
|
|
2
|
+
import { NetworkNumber } from '../types/common';
|
|
3
|
+
import { InnerLiquityV2MarketData, LiquityV2AssetsData, LiquityV2MarketData, LiquityV2MarketInfo, LiquityV2TroveData } from '../types';
|
|
4
|
+
export declare const getLiquityV2MarketData: (web3: Web3, network: NetworkNumber, selectedMarket: LiquityV2MarketInfo, mainnetWeb3: Web3) => Promise<LiquityV2MarketData>;
|
|
5
|
+
export declare const getLiquityV2TroveData: (web3: Web3, network: NetworkNumber, { selectedMarket, assetsData, marketData, troveId, }: {
|
|
6
|
+
selectedMarket: LiquityV2MarketInfo;
|
|
7
|
+
assetsData: LiquityV2AssetsData;
|
|
8
|
+
marketData: InnerLiquityV2MarketData;
|
|
9
|
+
troveId: string;
|
|
10
|
+
}) => Promise<LiquityV2TroveData>;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import Dec from 'decimal.js';
|
|
11
|
+
import { assetAmountInEth, getAssetInfo } from '@defisaver/tokens';
|
|
12
|
+
import { LiquityV2ViewContract } from '../contracts';
|
|
13
|
+
import { LIQUITY_TROVE_STATUS_ENUM, } from '../types';
|
|
14
|
+
import { getStakingApy, STAKING_ASSETS } from '../staking';
|
|
15
|
+
import { getLiquityV2AggregatedPositionData } from '../helpers/liquityV2Helpers';
|
|
16
|
+
import { ethToWeth } from '../services/utils';
|
|
17
|
+
export const getLiquityV2MarketData = (web3, network, selectedMarket, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
const viewContract = LiquityV2ViewContract(web3, network);
|
|
19
|
+
const { marketAddress, debtToken, collateralToken } = selectedMarket;
|
|
20
|
+
const data = yield viewContract.methods.getMarketData(marketAddress).call();
|
|
21
|
+
const assetsData = {};
|
|
22
|
+
assetsData[debtToken] = {
|
|
23
|
+
symbol: debtToken,
|
|
24
|
+
address: getAssetInfo(debtToken, network).address,
|
|
25
|
+
price: '1',
|
|
26
|
+
totalSupply: '0',
|
|
27
|
+
totalBorrow: assetAmountInEth(data.entireSystemDebt),
|
|
28
|
+
canBeSupplied: false,
|
|
29
|
+
canBeBorrowed: true,
|
|
30
|
+
};
|
|
31
|
+
assetsData[collateralToken] = {
|
|
32
|
+
symbol: collateralToken,
|
|
33
|
+
address: getAssetInfo(ethToWeth(collateralToken), network).address,
|
|
34
|
+
price: assetAmountInEth(data.collPrice),
|
|
35
|
+
totalSupply: assetAmountInEth(data.entireSystemColl),
|
|
36
|
+
totalBorrow: '0',
|
|
37
|
+
canBeSupplied: true,
|
|
38
|
+
canBeBorrowed: false,
|
|
39
|
+
};
|
|
40
|
+
if (STAKING_ASSETS.includes(collateralToken)) {
|
|
41
|
+
assetsData[collateralToken].incentiveSupplyApy = yield getStakingApy(collateralToken, mainnetWeb3);
|
|
42
|
+
assetsData[collateralToken].incentiveSupplyToken = collateralToken;
|
|
43
|
+
}
|
|
44
|
+
const minRatio = new Dec(data.MCR).div(1e16).toString();
|
|
45
|
+
return { assetsData, marketData: { minRatio } };
|
|
46
|
+
});
|
|
47
|
+
export const getLiquityV2TroveData = (web3, network, { selectedMarket, assetsData, marketData, troveId, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
|
+
const viewContract = LiquityV2ViewContract(web3, network);
|
|
49
|
+
const { minRatio } = marketData;
|
|
50
|
+
const { collateralToken, marketAddress, debtToken } = selectedMarket;
|
|
51
|
+
const data = yield viewContract.methods.getTroveInfo(marketAddress, troveId).call();
|
|
52
|
+
const usedAssets = {};
|
|
53
|
+
const debtAssetData = assetsData[debtToken];
|
|
54
|
+
const borrowed = assetAmountInEth(data.debtAmount);
|
|
55
|
+
usedAssets[debtToken] = {
|
|
56
|
+
symbol: debtToken,
|
|
57
|
+
address: debtAssetData.address,
|
|
58
|
+
price: debtAssetData.price,
|
|
59
|
+
supplied: '0',
|
|
60
|
+
suppliedUsd: '0',
|
|
61
|
+
borrowed,
|
|
62
|
+
borrowedUsd: new Dec(borrowed).mul(debtAssetData.price).toString(),
|
|
63
|
+
};
|
|
64
|
+
const collAssetData = assetsData[collateralToken];
|
|
65
|
+
const suppliedColl = assetAmountInEth(data.collAmount);
|
|
66
|
+
usedAssets[collateralToken] = {
|
|
67
|
+
symbol: collateralToken,
|
|
68
|
+
address: collAssetData.address,
|
|
69
|
+
price: collAssetData.price,
|
|
70
|
+
supplied: suppliedColl,
|
|
71
|
+
suppliedUsd: new Dec(suppliedColl).mul(collAssetData.price).toString(),
|
|
72
|
+
borrowed: '0',
|
|
73
|
+
borrowedUsd: '0',
|
|
74
|
+
};
|
|
75
|
+
const ratio = new Dec(data.TCRatio).div(1e16).toString();
|
|
76
|
+
const interestRate = new Dec(data.annualInterestRate).div(1e16).toString();
|
|
77
|
+
const interestBatchManager = data.interestBatchManager;
|
|
78
|
+
const payload = Object.assign({ usedAssets,
|
|
79
|
+
troveId,
|
|
80
|
+
ratio,
|
|
81
|
+
interestRate,
|
|
82
|
+
interestBatchManager, troveStatus: LIQUITY_TROVE_STATUS_ENUM[parseInt(data.status, 10)] }, getLiquityV2AggregatedPositionData({
|
|
83
|
+
usedAssets, assetsData, minRatio, interestRate,
|
|
84
|
+
}));
|
|
85
|
+
return payload;
|
|
86
|
+
});
|
package/esm/markets/index.d.ts
CHANGED
package/esm/markets/index.js
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NetworkNumber } from '../../types/common';
|
|
2
|
+
import { LiquityV2MarketInfo } from '../../types/liquityV2';
|
|
3
|
+
export declare const LIQUITY_V2_ETH_MARKET: (networkId?: NetworkNumber) => LiquityV2MarketInfo;
|
|
4
|
+
export declare const LIQUITY_V2_WSTETH_MARKET: (networkId?: NetworkNumber) => LiquityV2MarketInfo;
|
|
5
|
+
export declare const LiquityV2Markets: (networkId: NetworkNumber) => {
|
|
6
|
+
readonly liquityv2eth: LiquityV2MarketInfo;
|
|
7
|
+
readonly liquityv2wsteth: LiquityV2MarketInfo;
|
|
8
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NetworkNumber } from '../../types/common';
|
|
2
|
+
import { LiquityV2Versions } from '../../types/liquityV2';
|
|
3
|
+
export const LIQUITY_V2_ETH_MARKET = (networkId = NetworkNumber.Eth) => ({
|
|
4
|
+
chainIds: [1],
|
|
5
|
+
label: 'Liquity V2 ETH',
|
|
6
|
+
shortLabel: 'ETH',
|
|
7
|
+
value: LiquityV2Versions.LiquityV2Eth,
|
|
8
|
+
url: 'eth',
|
|
9
|
+
debtToken: 'BOLD',
|
|
10
|
+
collateralToken: 'ETH',
|
|
11
|
+
marketAddress: '0xd7199b16945f1ebaa0b301bf3d05bf489caa408b',
|
|
12
|
+
protocolName: 'liquity-v2',
|
|
13
|
+
});
|
|
14
|
+
export const LIQUITY_V2_WSTETH_MARKET = (networkId = NetworkNumber.Eth) => ({
|
|
15
|
+
chainIds: [1],
|
|
16
|
+
label: 'Liquity V2 wstETH',
|
|
17
|
+
shortLabel: 'wstETH',
|
|
18
|
+
value: LiquityV2Versions.LiquityV2WstEth,
|
|
19
|
+
url: 'wsteth',
|
|
20
|
+
debtToken: 'BOLD',
|
|
21
|
+
collateralToken: 'wstETH',
|
|
22
|
+
marketAddress: '0x0d22113a543826eeaf2ae0fc9d10aea66efba156',
|
|
23
|
+
protocolName: 'liquity-v2',
|
|
24
|
+
});
|
|
25
|
+
export const LiquityV2Markets = (networkId) => ({
|
|
26
|
+
[LiquityV2Versions.LiquityV2Eth]: LIQUITY_V2_ETH_MARKET(networkId),
|
|
27
|
+
[LiquityV2Versions.LiquityV2WstEth]: LIQUITY_V2_WSTETH_MARKET(networkId),
|
|
28
|
+
});
|
package/esm/staking/staking.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare const getStETHApr: (web3: Web3, fromBlock?: number, blockNumber?:
|
|
|
4
4
|
export declare const getCbETHApr: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
|
|
5
5
|
export declare const getREthApr: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
|
|
6
6
|
export declare const getDsrApy: (web3: Web3, blockNumber?: 'latest' | number) => Promise<string>;
|
|
7
|
+
export declare const getSsrApy: () => Promise<string>;
|
|
7
8
|
export declare const STAKING_ASSETS: string[];
|
|
8
9
|
export declare const getStakingApy: (asset: string, web3: Web3, blockNumber?: 'latest' | number, fromBlock?: number | undefined) => Promise<any> | "0" | undefined;
|
|
9
10
|
export declare const calculateInterestEarned: (principal: string, interest: string, type: string, apy?: boolean) => number;
|
package/esm/staking/staking.js
CHANGED
|
@@ -76,6 +76,11 @@ export const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, voi
|
|
|
76
76
|
.mul(100)
|
|
77
77
|
.toString();
|
|
78
78
|
});
|
|
79
|
+
export const getSsrApy = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
80
|
+
const res = yield fetch('https://app.defisaver.com/api/sky/data');
|
|
81
|
+
const data = yield res.json();
|
|
82
|
+
return new Dec(data.data.skyData[0].sky_savings_rate_apy).mul(100).toString();
|
|
83
|
+
});
|
|
79
84
|
const getSuperOETHApy = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
80
85
|
console.log('getSuperOETHApy');
|
|
81
86
|
const res = yield fetch('https://origin.squids.live/origin-squid/graphql', {
|
|
@@ -99,7 +104,7 @@ const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function*
|
|
|
99
104
|
const data = yield res.json();
|
|
100
105
|
return data.apy;
|
|
101
106
|
});
|
|
102
|
-
export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb'];
|
|
107
|
+
export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS'];
|
|
103
108
|
export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
|
|
104
109
|
console.log('getStakingApy', asset, blockNumber, fromBlock);
|
|
105
110
|
try {
|
|
@@ -127,6 +132,8 @@ export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = u
|
|
|
127
132
|
return getApyFromDfsApi('pufETH');
|
|
128
133
|
if (asset === 'wsuperOETHb')
|
|
129
134
|
return getSuperOETHApy();
|
|
135
|
+
if (asset === 'sUSDS')
|
|
136
|
+
return getSsrApy();
|
|
130
137
|
}
|
|
131
138
|
catch (e) {
|
|
132
139
|
console.error(`Failed to fetch APY for ${asset}`);
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type BN from "bn.js";
|
|
3
|
+
import type { ContractOptions } from "web3-eth-contract";
|
|
4
|
+
import type { EventLog } from "web3-core";
|
|
5
|
+
import type { EventEmitter } from "events";
|
|
6
|
+
import type { Callback, NonPayableTransactionObject, BlockType, BaseContract } from "./types";
|
|
7
|
+
export interface EventOptions {
|
|
8
|
+
filter?: object;
|
|
9
|
+
fromBlock?: BlockType;
|
|
10
|
+
topics?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare namespace LiquityV2View {
|
|
13
|
+
type MarketDataStruct = [
|
|
14
|
+
string,
|
|
15
|
+
number | string | BN,
|
|
16
|
+
number | string | BN,
|
|
17
|
+
number | string | BN,
|
|
18
|
+
number | string | BN,
|
|
19
|
+
number | string | BN,
|
|
20
|
+
number | string | BN,
|
|
21
|
+
number | string | BN,
|
|
22
|
+
string,
|
|
23
|
+
string,
|
|
24
|
+
string,
|
|
25
|
+
string,
|
|
26
|
+
string,
|
|
27
|
+
string,
|
|
28
|
+
string,
|
|
29
|
+
string,
|
|
30
|
+
string,
|
|
31
|
+
number | string | BN,
|
|
32
|
+
boolean
|
|
33
|
+
] | {
|
|
34
|
+
market: string;
|
|
35
|
+
CCR: number | string | BN;
|
|
36
|
+
MCR: number | string | BN;
|
|
37
|
+
SCR: number | string | BN;
|
|
38
|
+
LIQUIDATION_PENALTY_SP: number | string | BN;
|
|
39
|
+
LIQUIDATION_PENALTY_REDISTRIBUTION: number | string | BN;
|
|
40
|
+
entireSystemColl: number | string | BN;
|
|
41
|
+
entireSystemDebt: number | string | BN;
|
|
42
|
+
collToken: string;
|
|
43
|
+
troveNFT: string;
|
|
44
|
+
borrowerOperations: string;
|
|
45
|
+
troveManager: string;
|
|
46
|
+
stabilityPool: string;
|
|
47
|
+
sortedTroves: string;
|
|
48
|
+
collSurplusPool: string;
|
|
49
|
+
hintHelpers: string;
|
|
50
|
+
priceFeed: string;
|
|
51
|
+
collPrice: number | string | BN;
|
|
52
|
+
isShutDown: boolean;
|
|
53
|
+
};
|
|
54
|
+
type MarketDataStructOutputArray = [
|
|
55
|
+
string,
|
|
56
|
+
string,
|
|
57
|
+
string,
|
|
58
|
+
string,
|
|
59
|
+
string,
|
|
60
|
+
string,
|
|
61
|
+
string,
|
|
62
|
+
string,
|
|
63
|
+
string,
|
|
64
|
+
string,
|
|
65
|
+
string,
|
|
66
|
+
string,
|
|
67
|
+
string,
|
|
68
|
+
string,
|
|
69
|
+
string,
|
|
70
|
+
string,
|
|
71
|
+
string,
|
|
72
|
+
string,
|
|
73
|
+
boolean
|
|
74
|
+
];
|
|
75
|
+
type MarketDataStructOutputStruct = {
|
|
76
|
+
market: string;
|
|
77
|
+
CCR: string;
|
|
78
|
+
MCR: string;
|
|
79
|
+
SCR: string;
|
|
80
|
+
LIQUIDATION_PENALTY_SP: string;
|
|
81
|
+
LIQUIDATION_PENALTY_REDISTRIBUTION: string;
|
|
82
|
+
entireSystemColl: string;
|
|
83
|
+
entireSystemDebt: string;
|
|
84
|
+
collToken: string;
|
|
85
|
+
troveNFT: string;
|
|
86
|
+
borrowerOperations: string;
|
|
87
|
+
troveManager: string;
|
|
88
|
+
stabilityPool: string;
|
|
89
|
+
sortedTroves: string;
|
|
90
|
+
collSurplusPool: string;
|
|
91
|
+
hintHelpers: string;
|
|
92
|
+
priceFeed: string;
|
|
93
|
+
collPrice: string;
|
|
94
|
+
isShutDown: boolean;
|
|
95
|
+
};
|
|
96
|
+
type MarketDataStructOutput = MarketDataStructOutputArray & MarketDataStructOutputStruct;
|
|
97
|
+
type TroveDataStruct = [
|
|
98
|
+
number | string | BN,
|
|
99
|
+
string,
|
|
100
|
+
string,
|
|
101
|
+
number | string | BN,
|
|
102
|
+
number | string | BN,
|
|
103
|
+
number | string | BN,
|
|
104
|
+
number | string | BN,
|
|
105
|
+
number | string | BN,
|
|
106
|
+
number | string | BN,
|
|
107
|
+
string,
|
|
108
|
+
number | string | BN
|
|
109
|
+
] | {
|
|
110
|
+
troveId: number | string | BN;
|
|
111
|
+
owner: string;
|
|
112
|
+
collToken: string;
|
|
113
|
+
status: number | string | BN;
|
|
114
|
+
collAmount: number | string | BN;
|
|
115
|
+
debtAmount: number | string | BN;
|
|
116
|
+
collPrice: number | string | BN;
|
|
117
|
+
TCRatio: number | string | BN;
|
|
118
|
+
annualInterestRate: number | string | BN;
|
|
119
|
+
interestBatchManager: string;
|
|
120
|
+
batchDebtShares: number | string | BN;
|
|
121
|
+
};
|
|
122
|
+
type TroveDataStructOutputArray = [
|
|
123
|
+
string,
|
|
124
|
+
string,
|
|
125
|
+
string,
|
|
126
|
+
string,
|
|
127
|
+
string,
|
|
128
|
+
string,
|
|
129
|
+
string,
|
|
130
|
+
string,
|
|
131
|
+
string,
|
|
132
|
+
string,
|
|
133
|
+
string
|
|
134
|
+
];
|
|
135
|
+
type TroveDataStructOutputStruct = {
|
|
136
|
+
troveId: string;
|
|
137
|
+
owner: string;
|
|
138
|
+
collToken: string;
|
|
139
|
+
status: string;
|
|
140
|
+
collAmount: string;
|
|
141
|
+
debtAmount: string;
|
|
142
|
+
collPrice: string;
|
|
143
|
+
TCRatio: string;
|
|
144
|
+
annualInterestRate: string;
|
|
145
|
+
interestBatchManager: string;
|
|
146
|
+
batchDebtShares: string;
|
|
147
|
+
};
|
|
148
|
+
type TroveDataStructOutput = TroveDataStructOutputArray & TroveDataStructOutputStruct;
|
|
149
|
+
}
|
|
150
|
+
export interface LiquityV2View extends BaseContract {
|
|
151
|
+
constructor(jsonInterface: any[], address?: string, options?: ContractOptions): LiquityV2View;
|
|
152
|
+
clone(): LiquityV2View;
|
|
153
|
+
methods: {
|
|
154
|
+
findInsertPosition(_market: string, _interestRate: number | string | BN, _prevId: number | string | BN, _nextId: number | string | BN): NonPayableTransactionObject<[
|
|
155
|
+
string,
|
|
156
|
+
string
|
|
157
|
+
] & {
|
|
158
|
+
prevId: string;
|
|
159
|
+
nextId: string;
|
|
160
|
+
}>;
|
|
161
|
+
getApproxHint(_market: string, _collIndex: number | string | BN, _interestRate: number | string | BN, _numTrials: number | string | BN, _inputRandomSeed: number | string | BN): NonPayableTransactionObject<[
|
|
162
|
+
string,
|
|
163
|
+
string,
|
|
164
|
+
string
|
|
165
|
+
] & {
|
|
166
|
+
hintId: string;
|
|
167
|
+
diff: string;
|
|
168
|
+
latestRandomSeed: string;
|
|
169
|
+
}>;
|
|
170
|
+
getDebtInFront(_market: string, _troveId: number | string | BN, _acc: number | string | BN, _iterations: number | string | BN): NonPayableTransactionObject<[
|
|
171
|
+
string,
|
|
172
|
+
string
|
|
173
|
+
] & {
|
|
174
|
+
next: string;
|
|
175
|
+
debt: string;
|
|
176
|
+
}>;
|
|
177
|
+
getDebtInFrontByInterestRate(_market: string, _troveId: number | string | BN, _acc: number | string | BN, _iterations: number | string | BN, _targetIR: number | string | BN): NonPayableTransactionObject<[
|
|
178
|
+
string,
|
|
179
|
+
string
|
|
180
|
+
] & {
|
|
181
|
+
next: string;
|
|
182
|
+
debt: string;
|
|
183
|
+
}>;
|
|
184
|
+
getDebtInFrontByTroveNum(_market: string, _numTroves: number | string | BN): NonPayableTransactionObject<string>;
|
|
185
|
+
getDepositorInfo(_market: string, _depositor: string): NonPayableTransactionObject<[
|
|
186
|
+
string,
|
|
187
|
+
string,
|
|
188
|
+
string
|
|
189
|
+
] & {
|
|
190
|
+
compoundedBOLD: string;
|
|
191
|
+
collGain: string;
|
|
192
|
+
boldGain: string;
|
|
193
|
+
}>;
|
|
194
|
+
getInsertPosition(_market: string, _collIndex: number | string | BN, _interestRate: number | string | BN, _numTrials: number | string | BN, _inputRandomSeed: number | string | BN): NonPayableTransactionObject<[
|
|
195
|
+
string,
|
|
196
|
+
string
|
|
197
|
+
] & {
|
|
198
|
+
prevId: string;
|
|
199
|
+
nextId: string;
|
|
200
|
+
}>;
|
|
201
|
+
getMarketData(_market: string): NonPayableTransactionObject<LiquityV2View.MarketDataStructOutput>;
|
|
202
|
+
getNumOfTrovesInFrontOfTrove(_market: string, _troveId: number | string | BN, _iterations: number | string | BN): NonPayableTransactionObject<[
|
|
203
|
+
string,
|
|
204
|
+
string
|
|
205
|
+
] & {
|
|
206
|
+
next: string;
|
|
207
|
+
numTroves: string;
|
|
208
|
+
}>;
|
|
209
|
+
getTroveInfo(_market: string, _troveId: number | string | BN): NonPayableTransactionObject<LiquityV2View.TroveDataStructOutput>;
|
|
210
|
+
getTrovePosition(_market: string, _collIndex: number | string | BN, _troveId: number | string | BN, _numTrials: number | string | BN, _inputRandomSeed: number | string | BN): NonPayableTransactionObject<[
|
|
211
|
+
string,
|
|
212
|
+
string
|
|
213
|
+
] & {
|
|
214
|
+
prevId: string;
|
|
215
|
+
nextId: string;
|
|
216
|
+
}>;
|
|
217
|
+
isShutDown(_market: string): NonPayableTransactionObject<boolean>;
|
|
218
|
+
};
|
|
219
|
+
events: {
|
|
220
|
+
allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
|
|
221
|
+
};
|
|
222
|
+
}
|
|
@@ -34,6 +34,7 @@ export type { IVariableDebtToken } from "./IVariableDebtToken";
|
|
|
34
34
|
export type { LendingPoolAddressesProvider } from "./LendingPoolAddressesProvider";
|
|
35
35
|
export type { Lido } from "./Lido";
|
|
36
36
|
export type { LiquityActivePool } from "./LiquityActivePool";
|
|
37
|
+
export type { LiquityV2View } from "./LiquityV2View";
|
|
37
38
|
export type { LiquityView } from "./LiquityView";
|
|
38
39
|
export type { LlamaLendControllerAbi } from "./LlamaLendControllerAbi";
|
|
39
40
|
export type { LlamaLendView } from "./LlamaLendView";
|
package/esm/types/index.d.ts
CHANGED
package/esm/types/index.js
CHANGED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { EthAddress, NetworkNumber } from './common';
|
|
2
|
+
export declare enum LiquityV2Versions {
|
|
3
|
+
LiquityV2Eth = "liquityv2eth",
|
|
4
|
+
LiquityV2WstEth = "liquityv2wsteth"
|
|
5
|
+
}
|
|
6
|
+
export interface LiquityV2MarketInfo {
|
|
7
|
+
chainIds: NetworkNumber[];
|
|
8
|
+
label: string;
|
|
9
|
+
shortLabel: string;
|
|
10
|
+
url: string;
|
|
11
|
+
value: LiquityV2Versions;
|
|
12
|
+
debtToken: string;
|
|
13
|
+
collateralToken: string;
|
|
14
|
+
marketAddress: string;
|
|
15
|
+
protocolName: string;
|
|
16
|
+
}
|
|
17
|
+
export interface LiquityV2AssetData {
|
|
18
|
+
symbol: string;
|
|
19
|
+
address: string;
|
|
20
|
+
price: string;
|
|
21
|
+
incentiveSupplyApy?: string;
|
|
22
|
+
incentiveSupplyToken?: string;
|
|
23
|
+
totalSupply: string;
|
|
24
|
+
totalBorrow: string;
|
|
25
|
+
canBeSupplied: boolean;
|
|
26
|
+
canBeBorrowed: boolean;
|
|
27
|
+
}
|
|
28
|
+
export type LiquityV2AssetsData = {
|
|
29
|
+
[key: string]: LiquityV2AssetData;
|
|
30
|
+
};
|
|
31
|
+
export interface InnerLiquityV2MarketData {
|
|
32
|
+
minRatio: string;
|
|
33
|
+
}
|
|
34
|
+
export interface LiquityV2MarketData {
|
|
35
|
+
assetsData: LiquityV2AssetsData;
|
|
36
|
+
marketData: InnerLiquityV2MarketData;
|
|
37
|
+
}
|
|
38
|
+
export interface LiquityV2UsedAsset {
|
|
39
|
+
symbol: string;
|
|
40
|
+
address: string;
|
|
41
|
+
price: string;
|
|
42
|
+
supplied: string;
|
|
43
|
+
suppliedUsd: string;
|
|
44
|
+
borrowed: string;
|
|
45
|
+
borrowedUsd: string;
|
|
46
|
+
}
|
|
47
|
+
export type LiquityV2UsedAssets = {
|
|
48
|
+
[key: string]: LiquityV2UsedAsset;
|
|
49
|
+
};
|
|
50
|
+
export interface LiquityV2AggregatedTroveData {
|
|
51
|
+
suppliedUsd: string;
|
|
52
|
+
borrowedUsd: string;
|
|
53
|
+
borrowLimitUsd: string;
|
|
54
|
+
leftToBorrowUsd: string;
|
|
55
|
+
netApy: string;
|
|
56
|
+
incentiveUsd: string;
|
|
57
|
+
totalInterestUsd: string;
|
|
58
|
+
}
|
|
59
|
+
export interface LiquityV2TroveData {
|
|
60
|
+
usedAssets: LiquityV2UsedAssets;
|
|
61
|
+
troveId: string;
|
|
62
|
+
ratio: string;
|
|
63
|
+
interestRate: string;
|
|
64
|
+
leftToBorrowUsd: string;
|
|
65
|
+
borrowLimitUsd: string;
|
|
66
|
+
suppliedUsd: string;
|
|
67
|
+
borrowedUsd: string;
|
|
68
|
+
netApy: string;
|
|
69
|
+
incentiveUsd: string;
|
|
70
|
+
totalInterestUsd: string;
|
|
71
|
+
interestBatchManager: EthAddress;
|
|
72
|
+
troveStatus: string;
|
|
73
|
+
}
|
package/package.json
CHANGED
|
@@ -1,48 +1,49 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@defisaver/positions-sdk",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "./cjs/index.js",
|
|
6
|
-
"module": "./esm/index.js",
|
|
7
|
-
"types": "./esm/index.d.ts",
|
|
8
|
-
"scripts": {
|
|
9
|
-
"build:esm": "rm -rf esm && tsc -p tsconfig.esm.json",
|
|
10
|
-
"build:cjs": "rm -rf cjs && tsc -p tsconfig.cjs.json",
|
|
11
|
-
"build": "npm run lint && npm run generate-contracts && npm run build:cjs && npm run build:esm",
|
|
12
|
-
"dev": "npm run generate-contracts && tsc -p tsconfig.json --watch",
|
|
13
|
-
"lint": "eslint src/ --fix",
|
|
14
|
-
"lint-check": "eslint src/",
|
|
15
|
-
"generate-contracts": "node scripts/generateContracts.js",
|
|
16
|
-
"test": "mocha tests
|
|
17
|
-
"test-single": "mocha ./tests/$npm_config_name.ts",
|
|
18
|
-
"test:debugger": "mocha --inspect-brk tests/*",
|
|
19
|
-
"build-test": "npm run build && npm run test",
|
|
20
|
-
"version-bump": "git commit -am \"Version bump to $(npm version patch | cut -c 2-)\""
|
|
21
|
-
},
|
|
22
|
-
"keywords": [],
|
|
23
|
-
"author": "",
|
|
24
|
-
"license": "ISC",
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"@defisaver/tokens": "^1.5.45",
|
|
27
|
-
"@ethersproject/bignumber": "^5.7.0",
|
|
28
|
-
"@morpho-org/morpho-aave-v3-sdk": "^1.5.3",
|
|
29
|
-
"decimal.js": "^10.4.3"
|
|
30
|
-
},
|
|
31
|
-
"devDependencies": {
|
|
32
|
-
"@defisaver/eslint-config": "^1.0.1",
|
|
33
|
-
"@types/chai": "^5.0.0",
|
|
34
|
-
"@types/mocha": "^10.0.9",
|
|
35
|
-
"@types/web3": "^1.0.20",
|
|
36
|
-
"chai": "^4.3.8",
|
|
37
|
-
"dotenv": "^16.3.1",
|
|
38
|
-
"eslint": "^8.49.0",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"typechain
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@defisaver/positions-sdk",
|
|
3
|
+
"version": "0.0.166-dev-liquity-v2",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "./cjs/index.js",
|
|
6
|
+
"module": "./esm/index.js",
|
|
7
|
+
"types": "./esm/index.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build:esm": "rm -rf esm && tsc -p tsconfig.esm.json",
|
|
10
|
+
"build:cjs": "rm -rf cjs && tsc -p tsconfig.cjs.json",
|
|
11
|
+
"build": "npm run lint && npm run generate-contracts && npm run build:cjs && npm run build:esm",
|
|
12
|
+
"dev": "npm run generate-contracts && tsc -p tsconfig.json --watch",
|
|
13
|
+
"lint": "eslint src/ --fix",
|
|
14
|
+
"lint-check": "eslint src/",
|
|
15
|
+
"generate-contracts": "node scripts/generateContracts.js",
|
|
16
|
+
"test": "mocha tests/liquityV2.ts",
|
|
17
|
+
"test-single": "mocha ./tests/$npm_config_name.ts",
|
|
18
|
+
"test:debugger": "mocha --inspect-brk tests/*",
|
|
19
|
+
"build-test": "npm run build && npm run test",
|
|
20
|
+
"version-bump": "git commit -am \"Version bump to $(npm version patch | cut -c 2-)\""
|
|
21
|
+
},
|
|
22
|
+
"keywords": [],
|
|
23
|
+
"author": "",
|
|
24
|
+
"license": "ISC",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@defisaver/tokens": "^1.5.45-dev-2",
|
|
27
|
+
"@ethersproject/bignumber": "^5.7.0",
|
|
28
|
+
"@morpho-org/morpho-aave-v3-sdk": "^1.5.3",
|
|
29
|
+
"decimal.js": "^10.4.3"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@defisaver/eslint-config": "^1.0.1",
|
|
33
|
+
"@types/chai": "^5.0.0",
|
|
34
|
+
"@types/mocha": "^10.0.9",
|
|
35
|
+
"@types/web3": "^1.0.20",
|
|
36
|
+
"chai": "^4.3.8",
|
|
37
|
+
"dotenv": "^16.3.1",
|
|
38
|
+
"eslint": "^8.49.0",
|
|
39
|
+
"eslint-plugin-import": "^2.31.0",
|
|
40
|
+
"mocha": "^10.2.0",
|
|
41
|
+
"ts-node": "^10.9.2",
|
|
42
|
+
"typechain": "^8.3.1",
|
|
43
|
+
"typechain-target-web3-v1-3mihai3": "^6.0.2",
|
|
44
|
+
"typescript": "^5.2.2"
|
|
45
|
+
},
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"web3": "^1.10.2"
|
|
48
|
+
}
|
|
49
|
+
}
|