@defisaver/positions-sdk 2.1.12 → 2.1.13-dev-plasma-fluid
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/CLAUDE.md +32 -0
- package/cjs/config/contracts.d.ts +12 -0
- package/cjs/config/contracts.js +7 -3
- package/cjs/contracts.d.ts +100947 -134653
- package/cjs/fluid/index.js +44 -23
- package/cjs/markets/aave/marketAssets.js +1 -1
- package/cjs/markets/fluid/index.d.ts +46 -0
- package/cjs/markets/fluid/index.js +436 -1
- package/cjs/services/priceService.js +1 -1
- package/cjs/services/viem.d.ts +2 -3254
- package/cjs/staking/staking.js +4 -2
- package/cjs/types/fluid.d.ts +30 -1
- package/cjs/types/fluid.js +31 -1
- package/esm/config/contracts.d.ts +12 -0
- package/esm/config/contracts.js +7 -3
- package/esm/contracts.d.ts +100947 -134653
- package/esm/fluid/index.js +45 -24
- package/esm/markets/aave/marketAssets.js +1 -1
- package/esm/markets/fluid/index.d.ts +46 -0
- package/esm/markets/fluid/index.js +415 -1
- package/esm/services/priceService.js +2 -2
- package/esm/services/viem.d.ts +2 -3254
- package/esm/staking/staking.js +4 -2
- package/esm/types/fluid.d.ts +30 -1
- package/esm/types/fluid.js +30 -0
- package/package.json +1 -1
- package/src/config/contracts.ts +7 -3
- package/src/fluid/index.ts +58 -32
- package/src/markets/aave/marketAssets.ts +1 -1
- package/src/markets/fluid/index.ts +442 -2
- package/src/services/priceService.ts +3 -3
- package/src/staking/staking.ts +2 -1
- package/src/types/fluid.ts +32 -1
package/esm/staking/staking.js
CHANGED
|
@@ -51,7 +51,7 @@ const getSuperOETHApy = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
51
51
|
const getApyFromDfsApi = (asset_1, ...args_1) => __awaiter(void 0, [asset_1, ...args_1], void 0, function* (asset, network = NetworkNumber.Eth) {
|
|
52
52
|
var _a;
|
|
53
53
|
try {
|
|
54
|
-
const res = yield fetch(`
|
|
54
|
+
const res = yield fetch(`https://fe.defisaver.com/api/staking/apy?asset=${asset}&network=${network}`, { signal: AbortSignal.timeout(DEFAULT_TIMEOUT) });
|
|
55
55
|
if (!res.ok)
|
|
56
56
|
throw new Error(`Failed to fetch APY for ${asset}`);
|
|
57
57
|
const data = yield res.json();
|
|
@@ -62,7 +62,7 @@ const getApyFromDfsApi = (asset_1, ...args_1) => __awaiter(void 0, [asset_1, ...
|
|
|
62
62
|
return '0';
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
|
-
export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'tETH', 'PT sUSDe Sep', 'PT USDe Sep', 'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH'];
|
|
65
|
+
export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'tETH', 'PT sUSDe Sep', 'PT USDe Sep', 'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT'];
|
|
66
66
|
export const getStakingApy = memoize((asset_1, ...args_1) => __awaiter(void 0, [asset_1, ...args_1], void 0, function* (asset, network = NetworkNumber.Eth) {
|
|
67
67
|
try {
|
|
68
68
|
if (asset === 'stETH' || asset === 'wstETH')
|
|
@@ -115,6 +115,8 @@ export const getStakingApy = memoize((asset_1, ...args_1) => __awaiter(void 0, [
|
|
|
115
115
|
return yield getApyFromDfsApi('PT USDe Jan', network);
|
|
116
116
|
if (asset === 'PT sUSDe Jan')
|
|
117
117
|
return yield getApyFromDfsApi('PT sUSDe Jan', network);
|
|
118
|
+
if (asset === 'syrupUSDT')
|
|
119
|
+
return yield getApyFromDfsApi('syrupUSDT');
|
|
118
120
|
}
|
|
119
121
|
catch (e) {
|
|
120
122
|
console.error(`Failed to fetch APY for ${asset}`);
|
package/esm/types/fluid.d.ts
CHANGED
|
@@ -142,7 +142,30 @@ export declare enum FluidBaseVersions {
|
|
|
142
142
|
FLUID_LBTC_USDC_21_BASE = "FLUID_LBTC_USDC_21_BASE",
|
|
143
143
|
FLUID_LBTC_SUSDS_22_BASE = "FLUID_LBTC_SUSDS_22_BASE"
|
|
144
144
|
}
|
|
145
|
-
export
|
|
145
|
+
export declare enum FluidPlasmaVersions {
|
|
146
|
+
FLUID_ETH_USDT_1_PLASMA = "FLUID_ETH_USDT_1_PLASMA",
|
|
147
|
+
FLUID_ETH_USDE_2_PLASMA = "FLUID_ETH_USDE_2_PLASMA",
|
|
148
|
+
FLUID_WEETH_ETH_3_PLASMA = "FLUID_WEETH_ETH_3_PLASMA",
|
|
149
|
+
FLUID_SUSDE_USDT_4_PLASMA = "FLUID_SUSDE_USDT_4_PLASMA",
|
|
150
|
+
FLUID_WEETH_USDT_5_PLASMA = "FLUID_WEETH_USDT_5_PLASMA",
|
|
151
|
+
FLUID_WEETH_USDE_6_PLASMA = "FLUID_WEETH_USDE_6_PLASMA",
|
|
152
|
+
FLUID_XAUT_USDT_7_PLASMA = "FLUID_XAUT_USDT_7_PLASMA",
|
|
153
|
+
FLUID_XAUT_USDE_8_PLASMA = "FLUID_XAUT_USDE_8_PLASMA",
|
|
154
|
+
FLUID_USDE_USDT_9_PLASMA = "FLUID_USDE_USDT_9_PLASMA",
|
|
155
|
+
FLUID_USDAI_USDT_10_PLASMA = "FLUID_USDAI_USDT_10_PLASMA",
|
|
156
|
+
FLUID_WEETH_ETH_ETH_11_PLASMA = "FLUID_WEETH_ETH_ETH_11_PLASMA",
|
|
157
|
+
FLUID_SUSDE_USDT_USDT_12_PLASMA = "FLUID_SUSDE_USDT_USDT_12_PLASMA",
|
|
158
|
+
FLUID_USDE_USDT_USDT_13_PLASMA = "FLUID_USDE_USDT_USDT_13_PLASMA",
|
|
159
|
+
FLUID_USDAI_USDT_USDT_14_PLASMA = "FLUID_USDAI_USDT_USDT_14_PLASMA",
|
|
160
|
+
FLUID_USDT_SYRUPUSDT_USDT_15_PLASMA = "FLUID_USDT_SYRUPUSDT_USDT_15_PLASMA",
|
|
161
|
+
FLUID_XPL_USDT_16_PLASMA = "FLUID_XPL_USDT_16_PLASMA",
|
|
162
|
+
FLUID_XPL_USDE_17_PLASMA = "FLUID_XPL_USDE_17_PLASMA",
|
|
163
|
+
FLUID_WSTUSR_USDT_18_PLASMA = "FLUID_WSTUSR_USDT_18_PLASMA",
|
|
164
|
+
FLUID_WSTUSR_USDT_USDT_19_PLASMA = "FLUID_WSTUSR_USDT_USDT_19_PLASMA",
|
|
165
|
+
FLUID_SYRUPUSDT_USDT_20_PLASMA = "FLUID_SYRUPUSDT_USDT_20_PLASMA",
|
|
166
|
+
FLUID_ETH_WRSETH_ETH_21_PLASMA = "FLUID_ETH_WRSETH_ETH_21_PLASMA"
|
|
167
|
+
}
|
|
168
|
+
export type FluidVersions = FluidArbitrumVersion | FluidBaseVersions | FluidMainnetVersion | FluidPlasmaVersions;
|
|
146
169
|
export declare enum FluidMainnetDepositToken {
|
|
147
170
|
ETH = "ETH",
|
|
148
171
|
wstETH = "wstETH",
|
|
@@ -169,10 +192,16 @@ export declare enum FluidBaseDepositToken {
|
|
|
169
192
|
sUSDS = "sUSDS",
|
|
170
193
|
GHO = "GHO"
|
|
171
194
|
}
|
|
195
|
+
export declare enum FluidPlasmaDepositToken {
|
|
196
|
+
USDe = "USDe",
|
|
197
|
+
USDT = "USDT",
|
|
198
|
+
ETH = "ETH"
|
|
199
|
+
}
|
|
172
200
|
export type FluidDepositTokenByNetwork = {
|
|
173
201
|
[NetworkNumber.Eth]: FluidMainnetDepositToken;
|
|
174
202
|
[NetworkNumber.Arb]: FluidArbitrumDepositToken;
|
|
175
203
|
[NetworkNumber.Base]: FluidBaseDepositToken;
|
|
204
|
+
[NetworkNumber.Plasma]: FluidPlasmaDepositToken;
|
|
176
205
|
};
|
|
177
206
|
export declare enum FluidVaultType {
|
|
178
207
|
T1 = "T1",
|
package/esm/types/fluid.js
CHANGED
|
@@ -125,6 +125,30 @@ export var FluidBaseVersions;
|
|
|
125
125
|
FluidBaseVersions["FLUID_LBTC_USDC_21_BASE"] = "FLUID_LBTC_USDC_21_BASE";
|
|
126
126
|
FluidBaseVersions["FLUID_LBTC_SUSDS_22_BASE"] = "FLUID_LBTC_SUSDS_22_BASE";
|
|
127
127
|
})(FluidBaseVersions || (FluidBaseVersions = {}));
|
|
128
|
+
export var FluidPlasmaVersions;
|
|
129
|
+
(function (FluidPlasmaVersions) {
|
|
130
|
+
FluidPlasmaVersions["FLUID_ETH_USDT_1_PLASMA"] = "FLUID_ETH_USDT_1_PLASMA";
|
|
131
|
+
FluidPlasmaVersions["FLUID_ETH_USDE_2_PLASMA"] = "FLUID_ETH_USDE_2_PLASMA";
|
|
132
|
+
FluidPlasmaVersions["FLUID_WEETH_ETH_3_PLASMA"] = "FLUID_WEETH_ETH_3_PLASMA";
|
|
133
|
+
FluidPlasmaVersions["FLUID_SUSDE_USDT_4_PLASMA"] = "FLUID_SUSDE_USDT_4_PLASMA";
|
|
134
|
+
FluidPlasmaVersions["FLUID_WEETH_USDT_5_PLASMA"] = "FLUID_WEETH_USDT_5_PLASMA";
|
|
135
|
+
FluidPlasmaVersions["FLUID_WEETH_USDE_6_PLASMA"] = "FLUID_WEETH_USDE_6_PLASMA";
|
|
136
|
+
FluidPlasmaVersions["FLUID_XAUT_USDT_7_PLASMA"] = "FLUID_XAUT_USDT_7_PLASMA";
|
|
137
|
+
FluidPlasmaVersions["FLUID_XAUT_USDE_8_PLASMA"] = "FLUID_XAUT_USDE_8_PLASMA";
|
|
138
|
+
FluidPlasmaVersions["FLUID_USDE_USDT_9_PLASMA"] = "FLUID_USDE_USDT_9_PLASMA";
|
|
139
|
+
FluidPlasmaVersions["FLUID_USDAI_USDT_10_PLASMA"] = "FLUID_USDAI_USDT_10_PLASMA";
|
|
140
|
+
FluidPlasmaVersions["FLUID_WEETH_ETH_ETH_11_PLASMA"] = "FLUID_WEETH_ETH_ETH_11_PLASMA";
|
|
141
|
+
FluidPlasmaVersions["FLUID_SUSDE_USDT_USDT_12_PLASMA"] = "FLUID_SUSDE_USDT_USDT_12_PLASMA";
|
|
142
|
+
FluidPlasmaVersions["FLUID_USDE_USDT_USDT_13_PLASMA"] = "FLUID_USDE_USDT_USDT_13_PLASMA";
|
|
143
|
+
FluidPlasmaVersions["FLUID_USDAI_USDT_USDT_14_PLASMA"] = "FLUID_USDAI_USDT_USDT_14_PLASMA";
|
|
144
|
+
FluidPlasmaVersions["FLUID_USDT_SYRUPUSDT_USDT_15_PLASMA"] = "FLUID_USDT_SYRUPUSDT_USDT_15_PLASMA";
|
|
145
|
+
FluidPlasmaVersions["FLUID_XPL_USDT_16_PLASMA"] = "FLUID_XPL_USDT_16_PLASMA";
|
|
146
|
+
FluidPlasmaVersions["FLUID_XPL_USDE_17_PLASMA"] = "FLUID_XPL_USDE_17_PLASMA";
|
|
147
|
+
FluidPlasmaVersions["FLUID_WSTUSR_USDT_18_PLASMA"] = "FLUID_WSTUSR_USDT_18_PLASMA";
|
|
148
|
+
FluidPlasmaVersions["FLUID_WSTUSR_USDT_USDT_19_PLASMA"] = "FLUID_WSTUSR_USDT_USDT_19_PLASMA";
|
|
149
|
+
FluidPlasmaVersions["FLUID_SYRUPUSDT_USDT_20_PLASMA"] = "FLUID_SYRUPUSDT_USDT_20_PLASMA";
|
|
150
|
+
FluidPlasmaVersions["FLUID_ETH_WRSETH_ETH_21_PLASMA"] = "FLUID_ETH_WRSETH_ETH_21_PLASMA";
|
|
151
|
+
})(FluidPlasmaVersions || (FluidPlasmaVersions = {}));
|
|
128
152
|
export var FluidMainnetDepositToken;
|
|
129
153
|
(function (FluidMainnetDepositToken) {
|
|
130
154
|
FluidMainnetDepositToken["ETH"] = "ETH";
|
|
@@ -154,6 +178,12 @@ export var FluidBaseDepositToken;
|
|
|
154
178
|
FluidBaseDepositToken["sUSDS"] = "sUSDS";
|
|
155
179
|
FluidBaseDepositToken["GHO"] = "GHO";
|
|
156
180
|
})(FluidBaseDepositToken || (FluidBaseDepositToken = {}));
|
|
181
|
+
export var FluidPlasmaDepositToken;
|
|
182
|
+
(function (FluidPlasmaDepositToken) {
|
|
183
|
+
FluidPlasmaDepositToken["USDe"] = "USDe";
|
|
184
|
+
FluidPlasmaDepositToken["USDT"] = "USDT";
|
|
185
|
+
FluidPlasmaDepositToken["ETH"] = "ETH";
|
|
186
|
+
})(FluidPlasmaDepositToken || (FluidPlasmaDepositToken = {}));
|
|
157
187
|
export var FluidVaultType;
|
|
158
188
|
(function (FluidVaultType) {
|
|
159
189
|
FluidVaultType["T1"] = "T1";
|
package/package.json
CHANGED
package/src/config/contracts.ts
CHANGED
|
@@ -987,7 +987,8 @@ export const ETHPriceFeed = {
|
|
|
987
987
|
"1": { "address": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" },
|
|
988
988
|
"10": { "address": "0x13e3Ee699D1909E989722E753853AE30b17e08c5" },
|
|
989
989
|
"8453": { "address": "0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70" },
|
|
990
|
-
"42161": { "address": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612" }
|
|
990
|
+
"42161": { "address": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612" },
|
|
991
|
+
"9745": { "address": "0x43A7dd2125266c5c4c26EB86cd61241132426Fe7" },
|
|
991
992
|
},
|
|
992
993
|
} as const;
|
|
993
994
|
export const BTCPriceFeed = {
|
|
@@ -996,7 +997,8 @@ export const BTCPriceFeed = {
|
|
|
996
997
|
"1": { "address": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c" },
|
|
997
998
|
"10": { "address": "0xD702DD976Fb76Fffc2D3963D037dfDae5b04E593" },
|
|
998
999
|
"8453": { "address": "0x64c911996D3c6aC71f9b455B1E8E7266BcbD848F" },
|
|
999
|
-
"42161": { "address": "0x6ce185860a4963106506C203335A2910413708e9" }
|
|
1000
|
+
"42161": { "address": "0x6ce185860a4963106506C203335A2910413708e9" },
|
|
1001
|
+
"9745": { "address": "0x3Bc5434dd1Fc6a1B68625e0269B9818cDd9E21B5" }
|
|
1000
1002
|
},
|
|
1001
1003
|
} as const;
|
|
1002
1004
|
export const USDCPriceFeed = {
|
|
@@ -1064,7 +1066,8 @@ export const DFSFeedRegistry = {
|
|
|
1064
1066
|
"abi": [{"inputs":[],"name":"NonContractCall","type":"error"},{"inputs":[],"name":"SenderNotAdmin","type":"error"},{"inputs":[],"name":"SenderNotOwner","type":"error"},{"inputs":[],"name":"adminVault","outputs":[{"internalType":"contract AdminVault","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"aggregators","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"base","type":"address"},{"internalType":"address","name":"quote","type":"address"}],"name":"getFeed","outputs":[{"internalType":"address","name":"aggregator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"base","type":"address"},{"internalType":"address","name":"quote","type":"address"}],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"base","type":"address"},{"internalType":"address","name":"quote","type":"address"},{"internalType":"address","name":"aggregator","type":"address"}],"name":"setFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bases","type":"address[]"},{"internalType":"address[]","name":"quotes","type":"address[]"},{"internalType":"address[]","name":"aggregator","type":"address[]"}],"name":"setFeeds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawStuckFunds","outputs":[],"stateMutability":"nonpayable","type":"function"}],
|
|
1065
1067
|
"networks": {
|
|
1066
1068
|
"8453": { "address": "0x7dFF34190d0307fC234fc7E8C152C9715083eB02" },
|
|
1067
|
-
"42161": { "address": "0x158E27De8B5E5bC3FA1C6D5b365a291c54f6b0Fd" }
|
|
1069
|
+
"42161": { "address": "0x158E27De8B5E5bC3FA1C6D5b365a291c54f6b0Fd" },
|
|
1070
|
+
"9745": { "address": "0x2226836ec16FF5974dFD8DF740CD461B42FAffD5" }
|
|
1068
1071
|
}
|
|
1069
1072
|
} as const;
|
|
1070
1073
|
export const LlamaLendView = {
|
|
@@ -1124,6 +1127,7 @@ export const FluidView = {
|
|
|
1124
1127
|
"networks": {
|
|
1125
1128
|
"1": { "address": "0xc8df052bD7A8d76a34c09e758Dff3c6298C0115c" },
|
|
1126
1129
|
"8453": { "address": "0x6cd4D6af4F292817eA2A2311F099dF26cd015028" },
|
|
1130
|
+
"9745": { "address": "0x27C0BAe2338cE28097122393faF90375B9395dd1" },
|
|
1127
1131
|
"42161": { "address": "0xf9e6d5568887ac8eC6fA33B7eefD2A176A958e71" }
|
|
1128
1132
|
}
|
|
1129
1133
|
} as const;
|
package/src/fluid/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import Dec from 'decimal.js';
|
|
2
2
|
import {
|
|
3
|
-
assetAmountInEth,
|
|
4
|
-
AssetData, getAssetInfo, getAssetInfoByAddress,
|
|
3
|
+
assetAmountInEth, AssetData, getAssetInfo, getAssetInfoByAddress,
|
|
5
4
|
} from '@defisaver/tokens';
|
|
6
5
|
import { Client, PublicClient } from 'viem';
|
|
7
6
|
import {
|
|
@@ -9,7 +8,8 @@ import {
|
|
|
9
8
|
} from '../types/common';
|
|
10
9
|
import {
|
|
11
10
|
FluidAggregatedVaultData,
|
|
12
|
-
FluidAssetData,
|
|
11
|
+
FluidAssetData,
|
|
12
|
+
FluidAssetsData,
|
|
13
13
|
FluidFTokenDataStructOutput,
|
|
14
14
|
FluidMarketData,
|
|
15
15
|
FluidMarketInfo,
|
|
@@ -19,13 +19,22 @@ import {
|
|
|
19
19
|
FluidUserPositionStructOutputStruct,
|
|
20
20
|
FluidVaultData,
|
|
21
21
|
FluidVaultDataStructOutputStruct,
|
|
22
|
-
FluidVaultType,
|
|
22
|
+
FluidVaultType,
|
|
23
|
+
InnerFluidMarketData,
|
|
23
24
|
} from '../types';
|
|
24
25
|
import {
|
|
25
|
-
BTCPriceFeedContractViem,
|
|
26
|
+
BTCPriceFeedContractViem,
|
|
27
|
+
DFSFeedRegistryContractViem,
|
|
28
|
+
ETHPriceFeedContractViem,
|
|
29
|
+
FeedRegistryContractViem,
|
|
30
|
+
FluidViewContractViem,
|
|
26
31
|
} from '../contracts';
|
|
27
32
|
import {
|
|
28
|
-
compareAddresses,
|
|
33
|
+
compareAddresses,
|
|
34
|
+
DEFAULT_TIMEOUT,
|
|
35
|
+
getEthAmountForDecimals,
|
|
36
|
+
getNativeAssetFromWrapped,
|
|
37
|
+
isMainnetNetwork,
|
|
29
38
|
} from '../services/utils';
|
|
30
39
|
import {
|
|
31
40
|
getFluidAggregatedData,
|
|
@@ -105,7 +114,7 @@ const getChainLinkPricesForTokens = async (
|
|
|
105
114
|
const chainLinkFeedAddress = getChainlinkAssetAddress(assetInfo.symbol, network);
|
|
106
115
|
|
|
107
116
|
if (assetInfo.symbol === 'wstETH') return getWstETHChainLinkPriceCalls(client, network);
|
|
108
|
-
if (assetInfo.symbol === 'weETH') return getWeETHChainLinkPriceCalls(client, network);
|
|
117
|
+
if (assetInfo.symbol === 'weETH' && network !== NetworkNumber.Plasma) return getWeETHChainLinkPriceCalls(client, network);
|
|
109
118
|
|
|
110
119
|
if (isMainnet) {
|
|
111
120
|
const feedRegistryContract = FeedRegistryContractViem(client, NetworkNumber.Eth);
|
|
@@ -179,17 +188,29 @@ const getChainLinkPricesForTokens = async (
|
|
|
179
188
|
}
|
|
180
189
|
|
|
181
190
|
case 'weETH': {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
191
|
+
if (network !== NetworkNumber.Plasma) {
|
|
192
|
+
const {
|
|
193
|
+
ethPrice,
|
|
194
|
+
weETHRate,
|
|
195
|
+
} = parseWeETHPriceCalls(
|
|
196
|
+
results[i + offset].result!.toString(),
|
|
197
|
+
// @ts-ignore
|
|
198
|
+
results[i + offset + 1].result[1]!.toString(),
|
|
199
|
+
results[i + offset + 2].result!.toString(),
|
|
200
|
+
);
|
|
201
|
+
offset += 2;
|
|
202
|
+
acc[token] = new Dec(ethPrice).mul(weETHRate).toString();
|
|
187
203
|
// @ts-ignore
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
204
|
+
} else if (results[i + offset].result?.[1]) {
|
|
205
|
+
// For Plasma, use default chainlink feed (latestRoundData format)
|
|
206
|
+
// @ts-ignore
|
|
207
|
+
acc[token] = new Dec(results[i + offset].result[1]!.toString() as string).div(1e8).toString();
|
|
208
|
+
} else if (results[i + offset].result) {
|
|
209
|
+
// For Plasma, use default chainlink feed (latestAnswer format)
|
|
210
|
+
acc[token] = new Dec(results[i + offset].result!.toString() as string).div(1e8).toString();
|
|
211
|
+
} else {
|
|
212
|
+
acc[token] = '0';
|
|
213
|
+
}
|
|
193
214
|
break;
|
|
194
215
|
}
|
|
195
216
|
|
|
@@ -226,8 +247,13 @@ const getTokenPriceFromChainlink = async (asset: AssetData, network: NetworkNumb
|
|
|
226
247
|
} else {
|
|
227
248
|
// Currently only base network is supported
|
|
228
249
|
const feedRegistryContract = DFSFeedRegistryContractViem(provider, network);
|
|
229
|
-
|
|
230
|
-
|
|
250
|
+
try {
|
|
251
|
+
const roundPriceData = isTokenUSDA ? [0, '100000000'] : await feedRegistryContract.read.latestRoundData([loanTokenFeedAddress, USD_QUOTE]);
|
|
252
|
+
loanTokenPrice = roundPriceData[1].toString();
|
|
253
|
+
} catch (err) {
|
|
254
|
+
console.error(`Error fetching price for ${asset.symbol} on ${network}: ${err}`);
|
|
255
|
+
loanTokenPrice = '0';
|
|
256
|
+
}
|
|
231
257
|
}
|
|
232
258
|
|
|
233
259
|
return new Dec(loanTokenPrice).div(1e8).toString();
|
|
@@ -274,8 +300,8 @@ const getTradingApy = async (poolAddress: EthAddress) => {
|
|
|
274
300
|
};
|
|
275
301
|
|
|
276
302
|
const parseT1MarketData = async (provider: PublicClient, data: FluidVaultDataStructOutputStruct, network: NetworkNumber, tokenPrices: Record<string, string> | null = null) => {
|
|
277
|
-
const collAsset = getAssetInfoByAddress(data.supplyToken0, network);
|
|
278
|
-
const debtAsset = getAssetInfoByAddress(data.borrowToken0, network);
|
|
303
|
+
const collAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
|
|
304
|
+
const debtAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
|
|
279
305
|
|
|
280
306
|
const supplyRate = new Dec(data.supplyRateVault).div(100).toString();
|
|
281
307
|
const borrowRate = new Dec(data.borrowRateVault).div(100).toString();
|
|
@@ -392,9 +418,9 @@ const parseT1MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
392
418
|
};
|
|
393
419
|
|
|
394
420
|
const parseT2MarketData = async (provider: PublicClient, data: FluidVaultDataStructOutputStruct, network: NetworkNumber, tokenPrices: Record<string, string> | null = null) => {
|
|
395
|
-
const collAsset0 = getAssetInfoByAddress(data.supplyToken0, network);
|
|
396
|
-
const collAsset1 = getAssetInfoByAddress(data.supplyToken1, network);
|
|
397
|
-
const debtAsset = getAssetInfoByAddress(data.borrowToken0, network);
|
|
421
|
+
const collAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
|
|
422
|
+
const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken1, network).symbol), network);
|
|
423
|
+
const debtAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
|
|
398
424
|
|
|
399
425
|
// 18 because collateral is represented in shares for which they use 18 decimals
|
|
400
426
|
const oracleScaleFactor = new Dec(27).add(debtAsset.decimals).sub(18).toString();
|
|
@@ -582,9 +608,9 @@ const parseT2MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
582
608
|
};
|
|
583
609
|
|
|
584
610
|
const parseT3MarketData = async (provider: PublicClient, data: FluidVaultDataStructOutputStruct, network: NetworkNumber, tokenPrices: Record<string, string> | null = null) => {
|
|
585
|
-
const collAsset = getAssetInfoByAddress(data.supplyToken0, network);
|
|
586
|
-
const debtAsset0 = getAssetInfoByAddress(data.borrowToken0, network);
|
|
587
|
-
const debtAsset1 = getAssetInfoByAddress(data.borrowToken1, network);
|
|
611
|
+
const collAsset = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
|
|
612
|
+
const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
|
|
613
|
+
const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken1, network).symbol), network);
|
|
588
614
|
|
|
589
615
|
const {
|
|
590
616
|
borrowableShares,
|
|
@@ -769,10 +795,10 @@ const parseT3MarketData = async (provider: PublicClient, data: FluidVaultDataStr
|
|
|
769
795
|
};
|
|
770
796
|
|
|
771
797
|
const parseT4MarketData = async (provider: PublicClient, data: FluidVaultDataStructOutputStruct, network: NetworkNumber, tokenPrices: Record<string, string> | null = null) => {
|
|
772
|
-
const collAsset0 = getAssetInfoByAddress(data.supplyToken0, network);
|
|
773
|
-
const collAsset1 = getAssetInfoByAddress(data.supplyToken1, network);
|
|
774
|
-
const debtAsset0 = getAssetInfoByAddress(data.borrowToken0, network);
|
|
775
|
-
const debtAsset1 = getAssetInfoByAddress(data.borrowToken1, network);
|
|
798
|
+
const collAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken0, network).symbol), network);
|
|
799
|
+
const collAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.supplyToken1, network).symbol), network);
|
|
800
|
+
const debtAsset0 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken0, network).symbol), network);
|
|
801
|
+
const debtAsset1 = getAssetInfo(getNativeAssetFromWrapped(getAssetInfoByAddress(data.borrowToken1, network).symbol), network);
|
|
776
802
|
const quoteToken = getAssetInfoByAddress(data.dexBorrowData.quoteToken, network);
|
|
777
803
|
|
|
778
804
|
// 27 - 18 + 18
|
|
@@ -1580,7 +1606,7 @@ const getTokenPricePortfolio = async (token: string, provider: PublicClient, net
|
|
|
1580
1606
|
if (token === 'wstETH') {
|
|
1581
1607
|
return getWstETHPrice(provider, network);
|
|
1582
1608
|
}
|
|
1583
|
-
if (token === 'weETH') {
|
|
1609
|
+
if (token === 'weETH' && network !== NetworkNumber.Plasma) {
|
|
1584
1610
|
return getWeETHPrice(provider, network);
|
|
1585
1611
|
}
|
|
1586
1612
|
|
|
@@ -20,7 +20,7 @@ export const aaveV3AssetsDefaultMarketBase = ['ETH', 'cbETH', 'USDbC', 'wstETH',
|
|
|
20
20
|
|
|
21
21
|
export const aaveV3AssetsDefaultMarketLinea = ['ETH', 'USDC', 'weETH', 'ezETH', 'USDT', 'wstETH', 'wrsETH', 'WBTC'];
|
|
22
22
|
|
|
23
|
-
export const aaveV3AssetsDefaultMarketPlasma = ['ETH', 'USDT', 'sUSDe', 'USDe', 'weETH', 'XAUt', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH'];
|
|
23
|
+
export const aaveV3AssetsDefaultMarketPlasma = ['ETH', 'USDT', 'sUSDe', 'USDe', 'weETH', 'XAUt', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT'];
|
|
24
24
|
|
|
25
25
|
// @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
|
|
26
26
|
export const aaveV3AssetsDefaultMarket = {
|