@defisaver/positions-sdk 2.0.11 → 2.0.12
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 +64 -64
- package/cjs/aaveV3/index.js +1 -1
- package/cjs/config/contracts.d.ts +194 -33
- package/cjs/config/contracts.js +18 -1
- package/cjs/contracts.d.ts +1283 -293
- package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
- package/cjs/markets/aave/index.js +1 -1
- package/cjs/markets/aave/marketAssets.d.ts +4 -0
- package/cjs/markets/aave/marketAssets.js +5 -1
- package/cjs/markets/compound/index.js +11 -0
- package/cjs/markets/compound/marketsAssets.d.ts +7 -0
- package/cjs/markets/compound/marketsAssets.js +7 -0
- package/cjs/markets/spark/marketAssets.d.ts +1 -0
- package/cjs/markets/spark/marketAssets.js +1 -0
- package/cjs/portfolio/index.js +2 -2
- package/cjs/services/utils.js +1 -1
- package/cjs/services/viem.d.ts +46 -0
- package/cjs/services/viem.js +2 -0
- package/cjs/types/common.d.ts +2 -1
- package/cjs/types/common.js +1 -0
- package/esm/aaveV3/index.js +1 -1
- package/esm/config/contracts.d.ts +194 -33
- package/esm/config/contracts.js +18 -1
- package/esm/contracts.d.ts +1283 -293
- package/esm/helpers/morphoBlueHelpers/index.js +66 -66
- package/esm/markets/aave/index.js +1 -1
- package/esm/markets/aave/marketAssets.d.ts +4 -0
- package/esm/markets/aave/marketAssets.js +4 -0
- package/esm/markets/compound/index.js +11 -0
- package/esm/markets/compound/marketsAssets.d.ts +7 -0
- package/esm/markets/compound/marketsAssets.js +7 -0
- package/esm/markets/spark/marketAssets.d.ts +1 -0
- package/esm/markets/spark/marketAssets.js +1 -0
- package/esm/portfolio/index.js +2 -2
- package/esm/services/utils.js +1 -1
- package/esm/services/viem.d.ts +46 -0
- package/esm/services/viem.js +3 -1
- package/esm/types/common.d.ts +2 -1
- package/esm/types/common.js +1 -0
- package/package.json +47 -47
- package/src/aaveV2/index.ts +236 -236
- package/src/aaveV3/index.ts +488 -489
- package/src/compoundV2/index.ts +240 -240
- package/src/compoundV3/index.ts +270 -270
- package/src/config/contracts.ts +1107 -1090
- package/src/constants/index.ts +6 -6
- package/src/contracts.ts +107 -107
- package/src/curveUsd/index.ts +250 -250
- package/src/eulerV2/index.ts +314 -314
- package/src/exchange/index.ts +25 -25
- package/src/fluid/index.ts +1568 -1568
- package/src/helpers/aaveHelpers/index.ts +170 -170
- package/src/helpers/compoundHelpers/index.ts +261 -261
- package/src/helpers/curveUsdHelpers/index.ts +40 -40
- package/src/helpers/eulerHelpers/index.ts +259 -259
- package/src/helpers/fluidHelpers/index.ts +324 -324
- package/src/helpers/index.ts +10 -10
- package/src/helpers/liquityV2Helpers/index.ts +80 -80
- package/src/helpers/llamaLendHelpers/index.ts +53 -53
- package/src/helpers/makerHelpers/index.ts +52 -52
- package/src/helpers/morphoBlueHelpers/index.ts +390 -390
- package/src/helpers/sparkHelpers/index.ts +155 -155
- package/src/index.ts +45 -45
- package/src/liquity/index.ts +104 -104
- package/src/liquityV2/index.ts +408 -408
- package/src/llamaLend/index.ts +296 -296
- package/src/maker/index.ts +223 -223
- package/src/markets/aave/index.ts +116 -116
- package/src/markets/aave/marketAssets.ts +49 -44
- package/src/markets/compound/index.ts +227 -216
- package/src/markets/compound/marketsAssets.ts +90 -83
- package/src/markets/curveUsd/index.ts +69 -69
- package/src/markets/euler/index.ts +26 -26
- package/src/markets/fluid/index.ts +2456 -2456
- package/src/markets/index.ts +25 -25
- package/src/markets/liquityV2/index.ts +102 -102
- package/src/markets/llamaLend/contractAddresses.ts +141 -141
- package/src/markets/llamaLend/index.ts +235 -235
- package/src/markets/morphoBlue/index.ts +895 -895
- package/src/markets/spark/index.ts +29 -29
- package/src/markets/spark/marketAssets.ts +11 -10
- package/src/moneymarket/moneymarketCommonService.ts +80 -80
- package/src/morphoBlue/index.ts +222 -222
- package/src/portfolio/index.ts +285 -285
- package/src/services/priceService.ts +159 -159
- package/src/services/utils.ts +63 -63
- package/src/services/viem.ts +32 -30
- package/src/setup.ts +8 -8
- package/src/spark/index.ts +456 -456
- package/src/staking/staking.ts +193 -193
- package/src/types/aave.ts +194 -194
- package/src/types/common.ts +88 -87
- package/src/types/compound.ts +136 -136
- package/src/types/curveUsd.ts +121 -121
- package/src/types/euler.ts +174 -174
- package/src/types/fluid.ts +450 -450
- package/src/types/index.ts +11 -11
- package/src/types/liquity.ts +30 -30
- package/src/types/liquityV2.ts +126 -126
- package/src/types/llamaLend.ts +157 -157
- package/src/types/maker.ts +63 -63
- package/src/types/morphoBlue.ts +194 -194
- package/src/types/portfolio.ts +60 -60
- package/src/types/spark.ts +137 -137
|
@@ -118,73 +118,73 @@ export const getApyAfterValuesEstimation = (selectedMarket, actions, provider, n
|
|
|
118
118
|
return { borrowRate, supplyRate };
|
|
119
119
|
});
|
|
120
120
|
const API_URL = 'https://blue-api.morpho.org/graphql';
|
|
121
|
-
const MARKET_QUERY = `
|
|
122
|
-
query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
|
|
123
|
-
marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
|
|
124
|
-
reallocatableLiquidityAssets
|
|
125
|
-
targetBorrowUtilization
|
|
126
|
-
loanAsset {
|
|
127
|
-
address
|
|
128
|
-
decimals
|
|
129
|
-
priceUsd
|
|
130
|
-
}
|
|
131
|
-
state {
|
|
132
|
-
liquidityAssets
|
|
133
|
-
borrowAssets
|
|
134
|
-
supplyAssets
|
|
135
|
-
}
|
|
136
|
-
publicAllocatorSharedLiquidity {
|
|
137
|
-
assets
|
|
138
|
-
vault {
|
|
139
|
-
address
|
|
140
|
-
name
|
|
141
|
-
}
|
|
142
|
-
allocationMarket {
|
|
143
|
-
uniqueKey
|
|
144
|
-
loanAsset {
|
|
145
|
-
address
|
|
146
|
-
}
|
|
147
|
-
collateralAsset {
|
|
148
|
-
address
|
|
149
|
-
}
|
|
150
|
-
irmAddress
|
|
151
|
-
oracle {
|
|
152
|
-
address
|
|
153
|
-
}
|
|
154
|
-
lltv
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
loanAsset {
|
|
158
|
-
address
|
|
159
|
-
}
|
|
160
|
-
collateralAsset {
|
|
161
|
-
address
|
|
162
|
-
}
|
|
163
|
-
oracle {
|
|
164
|
-
address
|
|
165
|
-
}
|
|
166
|
-
irmAddress
|
|
167
|
-
lltv
|
|
168
|
-
}
|
|
169
|
-
}
|
|
121
|
+
const MARKET_QUERY = `
|
|
122
|
+
query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
|
|
123
|
+
marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
|
|
124
|
+
reallocatableLiquidityAssets
|
|
125
|
+
targetBorrowUtilization
|
|
126
|
+
loanAsset {
|
|
127
|
+
address
|
|
128
|
+
decimals
|
|
129
|
+
priceUsd
|
|
130
|
+
}
|
|
131
|
+
state {
|
|
132
|
+
liquidityAssets
|
|
133
|
+
borrowAssets
|
|
134
|
+
supplyAssets
|
|
135
|
+
}
|
|
136
|
+
publicAllocatorSharedLiquidity {
|
|
137
|
+
assets
|
|
138
|
+
vault {
|
|
139
|
+
address
|
|
140
|
+
name
|
|
141
|
+
}
|
|
142
|
+
allocationMarket {
|
|
143
|
+
uniqueKey
|
|
144
|
+
loanAsset {
|
|
145
|
+
address
|
|
146
|
+
}
|
|
147
|
+
collateralAsset {
|
|
148
|
+
address
|
|
149
|
+
}
|
|
150
|
+
irmAddress
|
|
151
|
+
oracle {
|
|
152
|
+
address
|
|
153
|
+
}
|
|
154
|
+
lltv
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
loanAsset {
|
|
158
|
+
address
|
|
159
|
+
}
|
|
160
|
+
collateralAsset {
|
|
161
|
+
address
|
|
162
|
+
}
|
|
163
|
+
oracle {
|
|
164
|
+
address
|
|
165
|
+
}
|
|
166
|
+
irmAddress
|
|
167
|
+
lltv
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
170
|
`;
|
|
171
|
-
const REWARDS_QUERY = `
|
|
172
|
-
query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
|
|
173
|
-
marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
|
|
174
|
-
uniqueKey
|
|
175
|
-
state {
|
|
176
|
-
rewards {
|
|
177
|
-
amountPerSuppliedToken
|
|
178
|
-
supplyApr
|
|
179
|
-
amountPerBorrowedToken
|
|
180
|
-
borrowApr
|
|
181
|
-
asset {
|
|
182
|
-
address
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
171
|
+
const REWARDS_QUERY = `
|
|
172
|
+
query MarketByUniqueKey($uniqueKey: String!, $chainId: Int!) {
|
|
173
|
+
marketByUniqueKey(uniqueKey: $uniqueKey, chainId: $chainId) {
|
|
174
|
+
uniqueKey
|
|
175
|
+
state {
|
|
176
|
+
rewards {
|
|
177
|
+
amountPerSuppliedToken
|
|
178
|
+
supplyApr
|
|
179
|
+
amountPerBorrowedToken
|
|
180
|
+
borrowApr
|
|
181
|
+
asset {
|
|
182
|
+
address
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
188
|
`;
|
|
189
189
|
/**
|
|
190
190
|
* Get reallocatable liquidity to a given market and target borrow utilization
|
|
@@ -39,7 +39,7 @@ export const AAVE_V2 = {
|
|
|
39
39
|
protocolName: 'aave',
|
|
40
40
|
};
|
|
41
41
|
export const AAVE_V3 = (networkId) => ({
|
|
42
|
-
chainIds: [NetworkNumber.Eth, NetworkNumber.Opt, NetworkNumber.Arb, NetworkNumber.Base],
|
|
42
|
+
chainIds: [NetworkNumber.Eth, NetworkNumber.Opt, NetworkNumber.Arb, NetworkNumber.Base, NetworkNumber.Linea],
|
|
43
43
|
label: networkId === NetworkNumber.Eth ? 'Aave v3 Core' : 'Aave v3',
|
|
44
44
|
shortLabel: 'v3',
|
|
45
45
|
value: AaveVersions.AaveV3,
|
|
@@ -5,11 +5,13 @@ export declare const aaveV3AssetsDefaultMarketEth: string[];
|
|
|
5
5
|
export declare const aaveV3AssetsDefaultMarketOpt: string[];
|
|
6
6
|
export declare const aaveV3AssetsDefaultMarketArb: string[];
|
|
7
7
|
export declare const aaveV3AssetsDefaultMarketBase: string[];
|
|
8
|
+
export declare const aaveV3AssetsDefaultMarketLinea: string[];
|
|
8
9
|
export declare const aaveV3AssetsDefaultMarket: {
|
|
9
10
|
readonly 1: string[];
|
|
10
11
|
readonly 10: string[];
|
|
11
12
|
readonly 42161: string[];
|
|
12
13
|
readonly 8453: string[];
|
|
14
|
+
readonly 59144: string[];
|
|
13
15
|
};
|
|
14
16
|
export declare const aaveV3AssetsLidoMarketEth: string[];
|
|
15
17
|
export declare const aaveV3AssetsLidoMarket: {
|
|
@@ -17,6 +19,7 @@ export declare const aaveV3AssetsLidoMarket: {
|
|
|
17
19
|
readonly 10: readonly [];
|
|
18
20
|
readonly 42161: readonly [];
|
|
19
21
|
readonly 8453: readonly [];
|
|
22
|
+
readonly 59144: readonly [];
|
|
20
23
|
};
|
|
21
24
|
export declare const aaveV3AssetsEtherfiMarketEth: string[];
|
|
22
25
|
export declare const aaveV3AssetsEtherfiMarket: {
|
|
@@ -24,4 +27,5 @@ export declare const aaveV3AssetsEtherfiMarket: {
|
|
|
24
27
|
readonly 10: readonly [];
|
|
25
28
|
readonly 42161: readonly [];
|
|
26
29
|
readonly 8453: readonly [];
|
|
30
|
+
readonly 59144: readonly [];
|
|
27
31
|
};
|
|
@@ -14,12 +14,14 @@ export const aaveV3AssetsDefaultMarketOpt = [
|
|
|
14
14
|
];
|
|
15
15
|
export const aaveV3AssetsDefaultMarketArb = ['DAI', 'LINK', 'USDC.e', 'WBTC', 'ETH', 'USDT', 'AAVE', 'EURS', 'wstETH', 'MAI', 'rETH', 'LUSD', 'USDC', 'FRAX', 'ARB', 'weETH', 'GHO', 'ezETH', 'rsETH', 'tBTC'];
|
|
16
16
|
export const aaveV3AssetsDefaultMarketBase = ['ETH', 'cbETH', 'USDbC', 'wstETH', 'USDC', 'weETH', 'cbBTC', 'ezETH', 'GHO', 'wrsETH', 'LBTC', 'EURC', 'AAVE', 'tBTC'];
|
|
17
|
+
export const aaveV3AssetsDefaultMarketLinea = ['ETH', 'USDC', 'weETH', 'ezETH', 'USDT', 'wstETH', 'wrsETH', 'WBTC'];
|
|
17
18
|
// @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
|
|
18
19
|
export const aaveV3AssetsDefaultMarket = {
|
|
19
20
|
[NetworkNumber.Eth]: aaveV3AssetsDefaultMarketEth,
|
|
20
21
|
[NetworkNumber.Opt]: aaveV3AssetsDefaultMarketOpt,
|
|
21
22
|
[NetworkNumber.Arb]: aaveV3AssetsDefaultMarketArb,
|
|
22
23
|
[NetworkNumber.Base]: aaveV3AssetsDefaultMarketBase,
|
|
24
|
+
[NetworkNumber.Linea]: aaveV3AssetsDefaultMarketLinea,
|
|
23
25
|
};
|
|
24
26
|
export const aaveV3AssetsLidoMarketEth = ['ETH', 'wstETH', 'USDS', 'USDC', 'ezETH', 'sUSDe', 'GHO', 'rsETH', 'tETH'];
|
|
25
27
|
export const aaveV3AssetsLidoMarket = {
|
|
@@ -27,6 +29,7 @@ export const aaveV3AssetsLidoMarket = {
|
|
|
27
29
|
[NetworkNumber.Opt]: [],
|
|
28
30
|
[NetworkNumber.Arb]: [],
|
|
29
31
|
[NetworkNumber.Base]: [],
|
|
32
|
+
[NetworkNumber.Linea]: [],
|
|
30
33
|
};
|
|
31
34
|
export const aaveV3AssetsEtherfiMarketEth = ['weETH', 'USDC', 'PYUSD', 'FRAX'];
|
|
32
35
|
export const aaveV3AssetsEtherfiMarket = {
|
|
@@ -34,4 +37,5 @@ export const aaveV3AssetsEtherfiMarket = {
|
|
|
34
37
|
[NetworkNumber.Opt]: [],
|
|
35
38
|
[NetworkNumber.Arb]: [],
|
|
36
39
|
[NetworkNumber.Base]: [],
|
|
40
|
+
[NetworkNumber.Linea]: [],
|
|
37
41
|
};
|
|
@@ -54,6 +54,17 @@ const BULKER_OPTIONS = {
|
|
|
54
54
|
[CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
|
|
55
55
|
[CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
|
|
56
56
|
},
|
|
57
|
+
[NetworkNumber.Linea]: {
|
|
58
|
+
// Non-existing markets, keeping it because of typescript
|
|
59
|
+
[CompoundVersions.CompoundV3USDC]: EMPTY_BULKER_OPTIONS,
|
|
60
|
+
[CompoundVersions.CompoundV3USDT]: EMPTY_BULKER_OPTIONS,
|
|
61
|
+
[CompoundVersions.CompoundV3ETH]: EMPTY_BULKER_OPTIONS,
|
|
62
|
+
[CompoundVersions.CompoundV3USDbC]: EMPTY_BULKER_OPTIONS,
|
|
63
|
+
[CompoundVersions.CompoundV2]: EMPTY_BULKER_OPTIONS,
|
|
64
|
+
[CompoundVersions.CompoundV3USDCe]: EMPTY_BULKER_OPTIONS,
|
|
65
|
+
[CompoundVersions.CompoundV3wstETH]: EMPTY_BULKER_OPTIONS,
|
|
66
|
+
[CompoundVersions.CompoundV3USDS]: EMPTY_BULKER_OPTIONS,
|
|
67
|
+
},
|
|
57
68
|
};
|
|
58
69
|
export const COMPOUND_V2 = {
|
|
59
70
|
chainIds: [NetworkNumber.Eth],
|
|
@@ -9,6 +9,7 @@ export declare const v3USDCCollAssets: {
|
|
|
9
9
|
readonly 10: string[];
|
|
10
10
|
readonly 42161: string[];
|
|
11
11
|
readonly 8453: string[];
|
|
12
|
+
readonly 59144: readonly [];
|
|
12
13
|
};
|
|
13
14
|
export declare const v3USDCeCollAssetsArb: string[];
|
|
14
15
|
export declare const v3USDCeCollAssets: {
|
|
@@ -16,6 +17,7 @@ export declare const v3USDCeCollAssets: {
|
|
|
16
17
|
readonly 10: readonly [];
|
|
17
18
|
readonly 42161: string[];
|
|
18
19
|
readonly 8453: readonly [];
|
|
20
|
+
readonly 59144: readonly [];
|
|
19
21
|
};
|
|
20
22
|
export declare const v3ETHCollAssetsEth: string[];
|
|
21
23
|
export declare const v3ETHCollAssetsBase: string[];
|
|
@@ -26,6 +28,7 @@ export declare const v3ETHCollAssets: {
|
|
|
26
28
|
readonly 10: string[];
|
|
27
29
|
readonly 42161: string[];
|
|
28
30
|
readonly 8453: string[];
|
|
31
|
+
readonly 59144: readonly [];
|
|
29
32
|
};
|
|
30
33
|
export declare const v3USDbCCollAssetsBase: string[];
|
|
31
34
|
export declare const v3USDbCCollAssets: {
|
|
@@ -33,6 +36,7 @@ export declare const v3USDbCCollAssets: {
|
|
|
33
36
|
10: never[];
|
|
34
37
|
42161: never[];
|
|
35
38
|
8453: string[];
|
|
39
|
+
59144: never[];
|
|
36
40
|
};
|
|
37
41
|
export declare const v3USDTCollAssetsEth: string[];
|
|
38
42
|
export declare const v3USDTCollAssetsArb: string[];
|
|
@@ -42,6 +46,7 @@ export declare const v3USDTCollAssets: {
|
|
|
42
46
|
10: string[];
|
|
43
47
|
42161: string[];
|
|
44
48
|
8453: never[];
|
|
49
|
+
59144: never[];
|
|
45
50
|
};
|
|
46
51
|
export declare const v3USDSCollAssetsEth: string[];
|
|
47
52
|
export declare const v3USDSCollAssetsBase: string[];
|
|
@@ -50,6 +55,7 @@ export declare const v3USDSCollAssets: {
|
|
|
50
55
|
10: never[];
|
|
51
56
|
42161: never[];
|
|
52
57
|
8453: string[];
|
|
58
|
+
59144: never[];
|
|
53
59
|
};
|
|
54
60
|
export declare const v3wstETHCollAssetsEth: string[];
|
|
55
61
|
export declare const v3wstETHCollAssets: {
|
|
@@ -57,4 +63,5 @@ export declare const v3wstETHCollAssets: {
|
|
|
57
63
|
10: never[];
|
|
58
64
|
42161: never[];
|
|
59
65
|
8453: never[];
|
|
66
|
+
59144: never[];
|
|
60
67
|
};
|
|
@@ -14,6 +14,7 @@ export const v3USDCCollAssets = {
|
|
|
14
14
|
[NetworkNumber.Opt]: v3USDCCollAssetsOpt,
|
|
15
15
|
[NetworkNumber.Arb]: v3USDCCollAssetsArb,
|
|
16
16
|
[NetworkNumber.Base]: v3USDCCollAssetsBase,
|
|
17
|
+
[NetworkNumber.Linea]: [],
|
|
17
18
|
};
|
|
18
19
|
export const v3USDCeCollAssetsArb = ['ARB', 'ETH', 'GMX', 'WBTC'];
|
|
19
20
|
// @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
|
|
@@ -22,6 +23,7 @@ export const v3USDCeCollAssets = {
|
|
|
22
23
|
[NetworkNumber.Opt]: [],
|
|
23
24
|
[NetworkNumber.Arb]: v3USDCeCollAssetsArb,
|
|
24
25
|
[NetworkNumber.Base]: [],
|
|
26
|
+
[NetworkNumber.Linea]: [],
|
|
25
27
|
};
|
|
26
28
|
export const v3ETHCollAssetsEth = ['cbETH', 'wstETH', 'rETH', 'rsETH', 'weETH', 'osETH', 'WBTC', 'ezETH', 'cbBTC', 'rswETH', 'tBTC', 'ETHx', 'tETH', 'pufETH', 'wOETH'];
|
|
27
29
|
export const v3ETHCollAssetsBase = ['cbETH', 'ezETH', 'wstETH', 'USDC', 'weETH', 'wrsETH', 'cbBTC', 'wsuperOETHb'];
|
|
@@ -33,6 +35,7 @@ export const v3ETHCollAssets = {
|
|
|
33
35
|
[NetworkNumber.Opt]: v3ETHCollAssetsOpt,
|
|
34
36
|
[NetworkNumber.Arb]: v3ETHCollAssetsArb,
|
|
35
37
|
[NetworkNumber.Base]: v3ETHCollAssetsBase,
|
|
38
|
+
[NetworkNumber.Linea]: [],
|
|
36
39
|
};
|
|
37
40
|
export const v3USDbCCollAssetsBase = ['ETH', 'cbETH'];
|
|
38
41
|
// @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
|
|
@@ -41,6 +44,7 @@ export const v3USDbCCollAssets = {
|
|
|
41
44
|
[NetworkNumber.Opt]: [],
|
|
42
45
|
[NetworkNumber.Arb]: [],
|
|
43
46
|
[NetworkNumber.Base]: v3USDbCCollAssetsBase,
|
|
47
|
+
[NetworkNumber.Linea]: [],
|
|
44
48
|
};
|
|
45
49
|
export const v3USDTCollAssetsEth = ['COMP', 'ETH', 'WBTC', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC', 'sFRAX', 'mETH', 'weETH', 'sdeUSD', 'deUSD'];
|
|
46
50
|
export const v3USDTCollAssetsArb = ['ETH', 'WBTC', 'wstETH', 'ARB', 'GMX'];
|
|
@@ -51,6 +55,7 @@ export const v3USDTCollAssets = {
|
|
|
51
55
|
[NetworkNumber.Opt]: v3USDTCollAssetsOpt,
|
|
52
56
|
[NetworkNumber.Arb]: v3USDTCollAssetsArb,
|
|
53
57
|
[NetworkNumber.Base]: [],
|
|
58
|
+
[NetworkNumber.Linea]: [],
|
|
54
59
|
};
|
|
55
60
|
export const v3USDSCollAssetsEth = ['wstETH', 'ETH', 'sUSDS', 'cbETH', 'tBTC', 'USDe'];
|
|
56
61
|
export const v3USDSCollAssetsBase = ['sUSDS', 'cbBTC'];
|
|
@@ -59,6 +64,7 @@ export const v3USDSCollAssets = {
|
|
|
59
64
|
[NetworkNumber.Opt]: [],
|
|
60
65
|
[NetworkNumber.Arb]: [],
|
|
61
66
|
[NetworkNumber.Base]: v3USDSCollAssetsBase,
|
|
67
|
+
[NetworkNumber.Linea]: [],
|
|
62
68
|
};
|
|
63
69
|
export const v3wstETHCollAssetsEth = ['rsETH', 'ezETH'];
|
|
64
70
|
export const v3wstETHCollAssets = {
|
|
@@ -66,4 +72,5 @@ export const v3wstETHCollAssets = {
|
|
|
66
72
|
[NetworkNumber.Opt]: [],
|
|
67
73
|
[NetworkNumber.Arb]: [],
|
|
68
74
|
[NetworkNumber.Base]: [],
|
|
75
|
+
[NetworkNumber.Linea]: [],
|
|
69
76
|
};
|
package/esm/portfolio/index.js
CHANGED
|
@@ -29,7 +29,7 @@ import { getEulerV2SubAccounts } from '../helpers/eulerHelpers';
|
|
|
29
29
|
export function getPortfolioData(provider, network, defaultProvider, addresses, summerFiAddresses) {
|
|
30
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
31
|
const isMainnet = network === NetworkNumber.Eth;
|
|
32
|
-
const
|
|
32
|
+
const isFluidSupported = [NetworkNumber.Eth, NetworkNumber.Arb, NetworkNumber.Base].includes(network);
|
|
33
33
|
const morphoMarkets = Object.values(MorphoBlueMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
34
34
|
const compoundV3Markets = Object.values(CompoundMarkets(network)).filter((market) => market.chainIds.includes(network) && market.value !== CompoundVersions.CompoundV2);
|
|
35
35
|
const sparkMarkets = Object.values(SparkMarkets(network)).filter((market) => market.chainIds.includes(network));
|
|
@@ -129,7 +129,7 @@ export function getPortfolioData(provider, network, defaultProvider, addresses,
|
|
|
129
129
|
})),
|
|
130
130
|
...addresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
131
131
|
try {
|
|
132
|
-
if (
|
|
132
|
+
if (!isFluidSupported)
|
|
133
133
|
return; // Fluid is not available on Optimism
|
|
134
134
|
const userPositions = yield _getUserPositionsPortfolio(client, network, address);
|
|
135
135
|
for (const position of userPositions) {
|
package/esm/services/utils.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Dec from 'decimal.js';
|
|
2
2
|
import { getAssetInfo, getAssetInfoByAddress } from '@defisaver/tokens';
|
|
3
3
|
import { NetworkNumber } from '../types/common';
|
|
4
|
-
export const isLayer2Network = (networkId) => [
|
|
4
|
+
export const isLayer2Network = (networkId) => [NetworkNumber.Opt, NetworkNumber.Arb, NetworkNumber.Base, NetworkNumber.Linea].includes(+networkId);
|
|
5
5
|
export const addToObjectIf = (condition, item) => (condition ? item : {});
|
|
6
6
|
export const addToArrayIf = (condition, ...items) => (condition ? items : []);
|
|
7
7
|
export const ethToWeth = (maybeEth) => maybeEth === null || maybeEth === void 0 ? void 0 : maybeEth.replace(/^ETH$/, 'WETH');
|
package/esm/services/viem.d.ts
CHANGED
|
@@ -684,6 +684,52 @@ export declare const getViemChain: (network: NetworkNumber) => {
|
|
|
684
684
|
serializers: {
|
|
685
685
|
readonly transaction: typeof import("viem/chains").serializeTransactionOpStack;
|
|
686
686
|
};
|
|
687
|
+
} | {
|
|
688
|
+
blockExplorers: {
|
|
689
|
+
readonly default: {
|
|
690
|
+
readonly name: "Etherscan";
|
|
691
|
+
readonly url: "https://lineascan.build";
|
|
692
|
+
readonly apiUrl: "https://api.lineascan.build/api";
|
|
693
|
+
};
|
|
694
|
+
};
|
|
695
|
+
blockTime?: number | undefined | undefined;
|
|
696
|
+
contracts: {
|
|
697
|
+
readonly multicall3: {
|
|
698
|
+
readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
|
|
699
|
+
readonly blockCreated: 42;
|
|
700
|
+
};
|
|
701
|
+
readonly ensRegistry: {
|
|
702
|
+
readonly address: "0x50130b669B28C339991d8676FA73CF122a121267";
|
|
703
|
+
readonly blockCreated: 6682888;
|
|
704
|
+
};
|
|
705
|
+
readonly ensUniversalResolver: {
|
|
706
|
+
readonly address: "0x3aA974fb3f8C1E02796048BDCdeD79e9D53a6965";
|
|
707
|
+
readonly blockCreated: 6683000;
|
|
708
|
+
};
|
|
709
|
+
};
|
|
710
|
+
ensTlds: readonly [".linea.eth"];
|
|
711
|
+
id: 59144;
|
|
712
|
+
name: "Linea Mainnet";
|
|
713
|
+
nativeCurrency: {
|
|
714
|
+
readonly name: "Linea Ether";
|
|
715
|
+
readonly symbol: "ETH";
|
|
716
|
+
readonly decimals: 18;
|
|
717
|
+
};
|
|
718
|
+
rpcUrls: {
|
|
719
|
+
readonly default: {
|
|
720
|
+
readonly http: readonly ["https://rpc.linea.build"];
|
|
721
|
+
readonly webSocket: readonly ["wss://rpc.linea.build"];
|
|
722
|
+
};
|
|
723
|
+
};
|
|
724
|
+
sourceId?: number | undefined | undefined;
|
|
725
|
+
testnet: false;
|
|
726
|
+
custom?: Record<string, unknown> | undefined;
|
|
727
|
+
fees: {
|
|
728
|
+
readonly estimateFeesPerGas: ({ client, multiply, request, type, }: Parameters<import("viem").ChainEstimateFeesPerGasFn>[0]) => ReturnType<import("viem").ChainEstimateFeesPerGasFn>;
|
|
729
|
+
readonly maxPriorityFeePerGas: ({ block, client, request }: import("viem").ChainFeesFnParameters<import("viem").ChainFormatters | undefined>) => Promise<bigint | null>;
|
|
730
|
+
};
|
|
731
|
+
formatters?: undefined;
|
|
732
|
+
serializers?: import("viem").ChainSerializers<undefined, import("viem").TransactionSerializable> | undefined;
|
|
687
733
|
};
|
|
688
734
|
export declare const getViemProvider: (provider: EthereumProvider, network: NetworkNumber, options?: any) => {
|
|
689
735
|
account: undefined;
|
package/esm/services/viem.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createPublicClient, custom } from 'viem';
|
|
2
|
-
import { arbitrum, base, mainnet, optimism, } from 'viem/chains';
|
|
2
|
+
import { arbitrum, base, mainnet, optimism, linea, } from 'viem/chains';
|
|
3
3
|
import { NetworkNumber } from '../types/common';
|
|
4
4
|
export const getViemChain = (network) => {
|
|
5
5
|
switch (network) {
|
|
@@ -11,6 +11,8 @@ export const getViemChain = (network) => {
|
|
|
11
11
|
return arbitrum;
|
|
12
12
|
case NetworkNumber.Base:
|
|
13
13
|
return base;
|
|
14
|
+
case NetworkNumber.Linea:
|
|
15
|
+
return linea;
|
|
14
16
|
default:
|
|
15
17
|
throw new Error(`Unsupported network: ${network}`);
|
|
16
18
|
}
|
package/esm/types/common.d.ts
CHANGED
package/esm/types/common.js
CHANGED
|
@@ -4,4 +4,5 @@ export var NetworkNumber;
|
|
|
4
4
|
NetworkNumber[NetworkNumber["Opt"] = 10] = "Opt";
|
|
5
5
|
NetworkNumber[NetworkNumber["Arb"] = 42161] = "Arb";
|
|
6
6
|
NetworkNumber[NetworkNumber["Base"] = 8453] = "Base";
|
|
7
|
+
NetworkNumber[NetworkNumber["Linea"] = 59144] = "Linea";
|
|
7
8
|
})(NetworkNumber || (NetworkNumber = {}));
|
package/package.json
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@defisaver/positions-sdk",
|
|
3
|
-
"version": "2.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 build:cjs && npm run build:esm",
|
|
12
|
-
"dev": "tsc -p tsconfig.json --watch",
|
|
13
|
-
"lint": "eslint src/ --fix",
|
|
14
|
-
"lint-check": "eslint src/",
|
|
15
|
-
"test": "mocha tests/*",
|
|
16
|
-
"test-single": "mocha ./tests/$npm_config_name.ts",
|
|
17
|
-
"test:debugger": "mocha --inspect-brk tests/*",
|
|
18
|
-
"version-bump": "git commit -am \"Version bump to $(npm version patch | cut -c 2-)\""
|
|
19
|
-
},
|
|
20
|
-
"keywords": [],
|
|
21
|
-
"author": "",
|
|
22
|
-
"license": "ISC",
|
|
23
|
-
"dependencies": {
|
|
24
|
-
"@defisaver/tokens": "^1.
|
|
25
|
-
"@types/lodash": "^4.17.15",
|
|
26
|
-
"@types/memoizee": "^0.4.12",
|
|
27
|
-
"decimal.js": "^10.6.0",
|
|
28
|
-
"lodash": "^4.17.21",
|
|
29
|
-
"memoizee": "^0.4.17",
|
|
30
|
-
"viem": "^2.31.4"
|
|
31
|
-
},
|
|
32
|
-
"devDependencies": {
|
|
33
|
-
"@defisaver/eslint-config": "^1.0.1",
|
|
34
|
-
"@metamask/eth-json-rpc-middleware": "^15.0.1",
|
|
35
|
-
"@metamask/eth-json-rpc-provider": "^4.1.6",
|
|
36
|
-
"@types/chai": "^5.0.0",
|
|
37
|
-
"@types/mocha": "^10.0.9",
|
|
38
|
-
"chai": "^4.3.8",
|
|
39
|
-
"dotenv": "^16.3.1",
|
|
40
|
-
"eslint": "^8.49.0",
|
|
41
|
-
"eslint-plugin-import": "^2.31.0",
|
|
42
|
-
"mocha": "^10.2.0",
|
|
43
|
-
"nock": "^14.0.0",
|
|
44
|
-
"ts-node": "^10.9.2",
|
|
45
|
-
"typescript": "^5.2.2"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@defisaver/positions-sdk",
|
|
3
|
+
"version": "2.0.12",
|
|
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 build:cjs && npm run build:esm",
|
|
12
|
+
"dev": "tsc -p tsconfig.json --watch",
|
|
13
|
+
"lint": "eslint src/ --fix",
|
|
14
|
+
"lint-check": "eslint src/",
|
|
15
|
+
"test": "mocha tests/*",
|
|
16
|
+
"test-single": "mocha ./tests/$npm_config_name.ts",
|
|
17
|
+
"test:debugger": "mocha --inspect-brk tests/*",
|
|
18
|
+
"version-bump": "git commit -am \"Version bump to $(npm version patch | cut -c 2-)\""
|
|
19
|
+
},
|
|
20
|
+
"keywords": [],
|
|
21
|
+
"author": "",
|
|
22
|
+
"license": "ISC",
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@defisaver/tokens": "^1.7.0",
|
|
25
|
+
"@types/lodash": "^4.17.15",
|
|
26
|
+
"@types/memoizee": "^0.4.12",
|
|
27
|
+
"decimal.js": "^10.6.0",
|
|
28
|
+
"lodash": "^4.17.21",
|
|
29
|
+
"memoizee": "^0.4.17",
|
|
30
|
+
"viem": "^2.31.4"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@defisaver/eslint-config": "^1.0.1",
|
|
34
|
+
"@metamask/eth-json-rpc-middleware": "^15.0.1",
|
|
35
|
+
"@metamask/eth-json-rpc-provider": "^4.1.6",
|
|
36
|
+
"@types/chai": "^5.0.0",
|
|
37
|
+
"@types/mocha": "^10.0.9",
|
|
38
|
+
"chai": "^4.3.8",
|
|
39
|
+
"dotenv": "^16.3.1",
|
|
40
|
+
"eslint": "^8.49.0",
|
|
41
|
+
"eslint-plugin-import": "^2.31.0",
|
|
42
|
+
"mocha": "^10.2.0",
|
|
43
|
+
"nock": "^14.0.0",
|
|
44
|
+
"ts-node": "^10.9.2",
|
|
45
|
+
"typescript": "^5.2.2"
|
|
46
|
+
}
|
|
47
|
+
}
|