@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.
Files changed (117) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +69 -69
  4. package/cjs/config/contracts.d.ts +43 -0
  5. package/cjs/config/contracts.js +6 -0
  6. package/cjs/contracts.d.ts +1 -0
  7. package/cjs/contracts.js +2 -1
  8. package/cjs/helpers/index.d.ts +1 -0
  9. package/cjs/helpers/index.js +2 -1
  10. package/cjs/helpers/liquityV2Helpers/index.d.ts +12 -0
  11. package/cjs/helpers/liquityV2Helpers/index.js +53 -0
  12. package/cjs/index.d.ts +2 -1
  13. package/cjs/index.js +3 -1
  14. package/cjs/liquityV2/index.d.ts +10 -0
  15. package/cjs/liquityV2/index.js +94 -0
  16. package/cjs/markets/index.d.ts +1 -0
  17. package/cjs/markets/index.js +3 -1
  18. package/cjs/markets/liquityV2/index.d.ts +8 -0
  19. package/cjs/markets/liquityV2/index.js +34 -0
  20. package/cjs/staking/staking.d.ts +1 -0
  21. package/cjs/staking/staking.js +10 -2
  22. package/cjs/types/contracts/generated/LiquityV2View.d.ts +222 -0
  23. package/cjs/types/contracts/generated/LiquityV2View.js +5 -0
  24. package/cjs/types/contracts/generated/index.d.ts +1 -0
  25. package/cjs/types/index.d.ts +1 -0
  26. package/cjs/types/index.js +1 -0
  27. package/cjs/types/liquityV2.d.ts +73 -0
  28. package/cjs/types/liquityV2.js +8 -0
  29. package/esm/config/contracts.d.ts +43 -0
  30. package/esm/config/contracts.js +6 -0
  31. package/esm/contracts.d.ts +1 -0
  32. package/esm/contracts.js +1 -0
  33. package/esm/helpers/index.d.ts +1 -0
  34. package/esm/helpers/index.js +1 -0
  35. package/esm/helpers/liquityV2Helpers/index.d.ts +12 -0
  36. package/esm/helpers/liquityV2Helpers/index.js +45 -0
  37. package/esm/index.d.ts +2 -1
  38. package/esm/index.js +2 -1
  39. package/esm/liquityV2/index.d.ts +10 -0
  40. package/esm/liquityV2/index.js +86 -0
  41. package/esm/markets/index.d.ts +1 -0
  42. package/esm/markets/index.js +1 -0
  43. package/esm/markets/liquityV2/index.d.ts +8 -0
  44. package/esm/markets/liquityV2/index.js +28 -0
  45. package/esm/staking/staking.d.ts +1 -0
  46. package/esm/staking/staking.js +8 -1
  47. package/esm/types/contracts/generated/LiquityV2View.d.ts +222 -0
  48. package/esm/types/contracts/generated/LiquityV2View.js +4 -0
  49. package/esm/types/contracts/generated/index.d.ts +1 -0
  50. package/esm/types/index.d.ts +1 -0
  51. package/esm/types/index.js +1 -0
  52. package/esm/types/liquityV2.d.ts +73 -0
  53. package/esm/types/liquityV2.js +5 -0
  54. package/package.json +49 -48
  55. package/src/aaveV2/index.ts +227 -227
  56. package/src/aaveV3/index.ts +590 -590
  57. package/src/assets/index.ts +60 -60
  58. package/src/chickenBonds/index.ts +123 -123
  59. package/src/compoundV2/index.ts +219 -219
  60. package/src/compoundV3/index.ts +281 -281
  61. package/src/config/contracts.js +1040 -1034
  62. package/src/constants/index.ts +6 -6
  63. package/src/contracts.ts +130 -128
  64. package/src/curveUsd/index.ts +229 -229
  65. package/src/exchange/index.ts +17 -17
  66. package/src/helpers/aaveHelpers/index.ts +194 -194
  67. package/src/helpers/chickenBondsHelpers/index.ts +23 -23
  68. package/src/helpers/compoundHelpers/index.ts +246 -246
  69. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  70. package/src/helpers/index.ts +9 -8
  71. package/src/helpers/liquityV2Helpers/index.ts +69 -0
  72. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  73. package/src/helpers/makerHelpers/index.ts +94 -94
  74. package/src/helpers/morphoBlueHelpers/index.ts +115 -115
  75. package/src/helpers/sparkHelpers/index.ts +150 -150
  76. package/src/index.ts +48 -46
  77. package/src/liquity/index.ts +116 -116
  78. package/src/liquityV2/index.ts +111 -0
  79. package/src/llamaLend/index.ts +275 -275
  80. package/src/maker/index.ts +117 -117
  81. package/src/markets/aave/index.ts +152 -152
  82. package/src/markets/aave/marketAssets.ts +46 -46
  83. package/src/markets/compound/index.ts +173 -173
  84. package/src/markets/compound/marketsAssets.ts +64 -64
  85. package/src/markets/curveUsd/index.ts +69 -69
  86. package/src/markets/index.ts +23 -22
  87. package/src/markets/liquityV2/index.ts +31 -0
  88. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  89. package/src/markets/llamaLend/index.ts +235 -235
  90. package/src/markets/morphoBlue/index.ts +728 -728
  91. package/src/markets/spark/index.ts +29 -29
  92. package/src/markets/spark/marketAssets.ts +10 -10
  93. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  94. package/src/morphoAaveV2/index.ts +256 -256
  95. package/src/morphoAaveV3/index.ts +630 -630
  96. package/src/morphoBlue/index.ts +171 -171
  97. package/src/multicall/index.ts +22 -22
  98. package/src/services/dsrService.ts +15 -15
  99. package/src/services/priceService.ts +21 -21
  100. package/src/services/utils.ts +54 -54
  101. package/src/setup.ts +8 -8
  102. package/src/spark/index.ts +424 -424
  103. package/src/staking/staking.ts +218 -211
  104. package/src/types/aave.ts +262 -262
  105. package/src/types/chickenBonds.ts +45 -45
  106. package/src/types/common.ts +84 -84
  107. package/src/types/compound.ts +129 -129
  108. package/src/types/contracts/generated/LiquityV2View.ts +280 -0
  109. package/src/types/contracts/generated/index.ts +1 -0
  110. package/src/types/curveUsd.ts +118 -118
  111. package/src/types/index.ts +9 -8
  112. package/src/types/liquity.ts +30 -30
  113. package/src/types/liquityV2.ts +79 -0
  114. package/src/types/llamaLend.ts +155 -155
  115. package/src/types/maker.ts +50 -50
  116. package/src/types/morphoBlue.ts +146 -146
  117. 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
+ });
@@ -4,3 +4,4 @@ export { SparkMarkets } from './spark';
4
4
  export { CrvUsdMarkets } from './curveUsd';
5
5
  export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
6
6
  export { LlamaLendMarkets } from './llamaLend';
7
+ export { LiquityV2Markets } from './liquityV2';
@@ -4,3 +4,4 @@ export { SparkMarkets } from './spark';
4
4
  export { CrvUsdMarkets } from './curveUsd';
5
5
  export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
6
6
  export { LlamaLendMarkets } from './llamaLend';
7
+ export { LiquityV2Markets } from './liquityV2';
@@ -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
+ });
@@ -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;
@@ -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
+ }
@@ -0,0 +1,4 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export {};
@@ -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";
@@ -3,6 +3,7 @@ export * from './compound';
3
3
  export * from './spark';
4
4
  export * from './curveUsd';
5
5
  export * from './liquity';
6
+ export * from './liquityV2';
6
7
  export * from './maker';
7
8
  export * from './chickenBonds';
8
9
  export * from './morphoBlue';
@@ -3,6 +3,7 @@ export * from './compound';
3
3
  export * from './spark';
4
4
  export * from './curveUsd';
5
5
  export * from './liquity';
6
+ export * from './liquityV2';
6
7
  export * from './maker';
7
8
  export * from './chickenBonds';
8
9
  export * from './morphoBlue';
@@ -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
+ }
@@ -0,0 +1,5 @@
1
+ export var LiquityV2Versions;
2
+ (function (LiquityV2Versions) {
3
+ LiquityV2Versions["LiquityV2Eth"] = "liquityv2eth";
4
+ LiquityV2Versions["LiquityV2WstEth"] = "liquityv2wsteth";
5
+ })(LiquityV2Versions || (LiquityV2Versions = {}));
package/package.json CHANGED
@@ -1,48 +1,49 @@
1
- {
2
- "name": "@defisaver/positions-sdk",
3
- "version": "0.0.165",
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
- "mocha": "^10.2.0",
40
- "ts-node": "^10.9.2",
41
- "typechain": "^8.3.1",
42
- "typechain-target-web3-v1-3mihai3": "^6.0.2",
43
- "typescript": "^5.2.2"
44
- },
45
- "peerDependencies": {
46
- "web3": "^1.10.2"
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
+ }