@defisaver/positions-sdk 2.1.20-dev-morpho-2 → 2.1.21-dev-ethena
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/cjs/claiming/ethena.d.ts +3 -0
- package/cjs/claiming/ethena.js +65 -0
- package/cjs/config/contracts.d.ts +0 -4
- package/cjs/config/contracts.js +0 -4
- package/cjs/markets/morphoBlue/index.d.ts +0 -12
- package/cjs/markets/morphoBlue/index.js +2 -106
- package/cjs/portfolio/index.js +23 -0
- package/cjs/staking/staking.js +3 -1
- package/cjs/types/claiming.d.ts +6 -2
- package/cjs/types/claiming.js +1 -0
- package/cjs/types/morphoBlue.d.ts +1 -7
- package/cjs/types/morphoBlue.js +0 -7
- package/esm/claiming/ethena.d.ts +3 -0
- package/esm/claiming/ethena.js +57 -0
- package/esm/config/contracts.d.ts +0 -4
- package/esm/config/contracts.js +0 -4
- package/esm/markets/morphoBlue/index.d.ts +0 -12
- package/esm/markets/morphoBlue/index.js +0 -98
- package/esm/portfolio/index.js +23 -0
- package/esm/staking/staking.js +3 -1
- package/esm/types/claiming.d.ts +6 -2
- package/esm/types/claiming.js +1 -0
- package/esm/types/morphoBlue.d.ts +1 -7
- package/esm/types/morphoBlue.js +0 -7
- package/package.json +2 -2
- package/src/claiming/ethena.ts +58 -0
- package/src/config/contracts.ts +0 -4
- package/src/markets/morphoBlue/index.ts +0 -105
- package/src/portfolio/index.ts +22 -0
- package/src/staking/staking.ts +2 -1
- package/src/types/claiming.ts +6 -1
- package/src/types/morphoBlue.ts +0 -8
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.fetchEthenaAirdropRewards = exports.fetchEthenaAirdropReward = void 0;
|
|
16
|
+
const tokens_1 = require("@defisaver/tokens");
|
|
17
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
18
|
+
const claiming_1 = require("../types/claiming");
|
|
19
|
+
const fetchEthenaAirdropReward = (address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
try {
|
|
21
|
+
const response = yield fetch(`https://airdrop-data-ethena-s4.s3.us-west-2.amazonaws.com/${address}/0x3d99219fbd49ace3f48d6ca1340e505ec1bdf27d1f8d0e15ec9f286cc9215fcd-${address}.json`);
|
|
22
|
+
console.log(response);
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
25
|
+
}
|
|
26
|
+
return yield response.json();
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
console.error('Error fetching Ethena airdrop rewards:', error);
|
|
30
|
+
return '0';
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
exports.fetchEthenaAirdropReward = fetchEthenaAirdropReward;
|
|
34
|
+
const fetchEthenaAirdropRewards = (walletAddresses) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
console.log('FETCHING ETHENA');
|
|
36
|
+
const apiDataPromises = walletAddresses.map(address => (0, exports.fetchEthenaAirdropReward)(address));
|
|
37
|
+
const apiDataArray = yield Promise.all(apiDataPromises);
|
|
38
|
+
console.log(apiDataArray);
|
|
39
|
+
const results = {};
|
|
40
|
+
for (let i = 0; i < walletAddresses.length; i++) {
|
|
41
|
+
const walletAddress = walletAddresses[i];
|
|
42
|
+
const data = apiDataArray[i];
|
|
43
|
+
if (data.length === 0) {
|
|
44
|
+
results[walletAddress.toLowerCase()] = [];
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const processedRewards = [];
|
|
48
|
+
const amount = data.events[0].awardAmount;
|
|
49
|
+
const assetInfo = (0, tokens_1.getAssetInfo)('sENA');
|
|
50
|
+
if (new decimal_js_1.default(amount).gt('0')) {
|
|
51
|
+
processedRewards.push({
|
|
52
|
+
symbol: assetInfo.symbol,
|
|
53
|
+
underlyingSymbol: assetInfo.symbol,
|
|
54
|
+
amount,
|
|
55
|
+
claimType: claiming_1.ClaimType.SPARK_AIRDROP,
|
|
56
|
+
tokenAddress: assetInfo.address,
|
|
57
|
+
walletAddress,
|
|
58
|
+
label: 'Ethena Airdrop',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
results[walletAddress.toLowerCase()] = processedRewards;
|
|
62
|
+
}
|
|
63
|
+
return results;
|
|
64
|
+
});
|
|
65
|
+
exports.fetchEthenaAirdropRewards = fetchEthenaAirdropRewards;
|
|
@@ -74237,10 +74237,6 @@ export declare const MorphoBlueView: {
|
|
|
74237
74237
|
};
|
|
74238
74238
|
};
|
|
74239
74239
|
};
|
|
74240
|
-
readonly "42161": {
|
|
74241
|
-
readonly address: "0xa3b8b400a2eFF0314fa9605E778692bd4Bd9f880";
|
|
74242
|
-
readonly createdBlock: 394369307;
|
|
74243
|
-
};
|
|
74244
74240
|
};
|
|
74245
74241
|
};
|
|
74246
74242
|
export declare const FeedRegistry: {
|
package/cjs/config/contracts.js
CHANGED
|
@@ -1055,10 +1055,6 @@ exports.MorphoBlueView = {
|
|
|
1055
1055
|
"address": "0xDBCACF59C5063da8B15481F88E7D70E13c92f2a1",
|
|
1056
1056
|
},
|
|
1057
1057
|
},
|
|
1058
|
-
},
|
|
1059
|
-
"42161": {
|
|
1060
|
-
"address": "0xa3b8b400a2eFF0314fa9605E778692bd4Bd9f880",
|
|
1061
|
-
"createdBlock": 394369307,
|
|
1062
1058
|
}
|
|
1063
1059
|
},
|
|
1064
1060
|
};
|
|
@@ -32,7 +32,6 @@ export declare const MORPHO_BLUE_USR_USDC_915: (networkId?: NetworkNumber) => Mo
|
|
|
32
32
|
export declare const MORPHO_BLUE_SYRUPUSDC_USDC_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
33
33
|
export declare const MORPHO_BLUE_LBTC_USDC_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
34
34
|
export declare const MORPHO_BLUE_LBTC_CBBTC_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
35
|
-
export declare const MORPHO_BLUE_SUSDS_USDT_965: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
36
35
|
export declare const MORPHO_BLUE_CBETH_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
37
36
|
export declare const MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
38
37
|
export declare const MORPHO_BLUE_WSTETH_ETH_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
@@ -52,11 +51,6 @@ export declare const MORPHO_BLUE_LBTC_CBBTC_945_BASE: (networkId?: NetworkNumber
|
|
|
52
51
|
export declare const MORPHO_BLUE_WSTETH_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
53
52
|
export declare const MORPHO_BLUE_CBBTC_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
54
53
|
export declare const MORPHO_BLUE_WETH_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
55
|
-
export declare const MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
56
|
-
export declare const MorphoBlueWBTCUSDC_860_Arb: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
57
|
-
export declare const MORPHO_BLUE_WSTETH_USDC_860_ARB: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
58
|
-
export declare const MORPHO_BLUE_ETH_USDC_860_ARB: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
59
|
-
export declare const MORPHO_BLUE_SUSDS_USDC_945_ARB: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
60
54
|
export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
61
55
|
readonly morphobluewstethusdc: MorphoBlueMarketData;
|
|
62
56
|
readonly morphobluesdaiusdc: MorphoBlueMarketData;
|
|
@@ -83,7 +77,6 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
|
83
77
|
readonly morphobluesyrupusdcusdc_915: MorphoBlueMarketData;
|
|
84
78
|
readonly morphobluelbtcusdc_860: MorphoBlueMarketData;
|
|
85
79
|
readonly morphobluelbtccbbtc_945: MorphoBlueMarketData;
|
|
86
|
-
readonly morphobluesusdsusdt_965: MorphoBlueMarketData;
|
|
87
80
|
readonly morphobluewstetheth_945: MorphoBlueMarketData;
|
|
88
81
|
readonly morphobluewstetheth_945_exchange_rate: MorphoBlueMarketData;
|
|
89
82
|
readonly morphobluewstetheth_965_exchange_rate: MorphoBlueMarketData;
|
|
@@ -110,10 +103,5 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
|
110
103
|
readonly morphobluecbetheth_965_base: MorphoBlueMarketData;
|
|
111
104
|
readonly morphobluewstetheth_945_base: MorphoBlueMarketData;
|
|
112
105
|
readonly morphobluewstetheth_965_base: MorphoBlueMarketData;
|
|
113
|
-
readonly morphobluesyrupusdcusdc_915_arb: MorphoBlueMarketData;
|
|
114
|
-
readonly morphobluewbtcusdc_860_arb: MorphoBlueMarketData;
|
|
115
|
-
readonly morphobluewstethusdc_860_arb: MorphoBlueMarketData;
|
|
116
|
-
readonly morphoblueethusdc_860_arb: MorphoBlueMarketData;
|
|
117
|
-
readonly morphobluesusdsusdc_945_arb: MorphoBlueMarketData;
|
|
118
106
|
};
|
|
119
107
|
export declare const findMorphoBlueMarket: (collateralToken: string, loanToken: string, lltv: number, oracle: string, irm: string, network?: NetworkNumber) => MorphoBlueMarketData | null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MORPHO_BLUE_WSTETH_EURC_860_BASE = exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE = exports.MORPHO_BLUE_LBTC_WBTC_945 = exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = exports.MORPHO_BLUE_CBBTC_USDC_860_BASE = exports.MORPHO_BLUE_CBBTC_ETH_915_BASE = exports.MORPHO_BLUE_RETH_ETH_945_BASE = exports.MORPHO_BLUE_RETH_USDC_860_BASE = exports.MORPHO_BLUE_ETH_USDC_860_BASE = exports.MORPHO_BLUE_CBETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE_13c42741 = exports.MORPHO_BLUE_WSTETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d = exports.MORPHO_BLUE_CBETH_USDC_860_BASE = exports.
|
|
4
|
-
exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.
|
|
3
|
+
exports.MORPHO_BLUE_CBBTC_EURC_860_BASE = exports.MORPHO_BLUE_WSTETH_EURC_860_BASE = exports.MORPHO_BLUE_LBTC_CBBTC_945_BASE = exports.MORPHO_BLUE_LBTC_WBTC_945 = exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = exports.MORPHO_BLUE_CBBTC_USDC_860_BASE = exports.MORPHO_BLUE_CBBTC_ETH_915_BASE = exports.MORPHO_BLUE_RETH_ETH_945_BASE = exports.MORPHO_BLUE_RETH_USDC_860_BASE = exports.MORPHO_BLUE_ETH_USDC_860_BASE = exports.MORPHO_BLUE_CBETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE = exports.MORPHO_BLUE_WSTETH_USDC_860_BASE_13c42741 = exports.MORPHO_BLUE_WSTETH_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d = exports.MORPHO_BLUE_CBETH_USDC_860_BASE = exports.MORPHO_BLUE_LBTC_CBBTC_945 = exports.MORPHO_BLUE_LBTC_USDC_860 = exports.MORPHO_BLUE_SYRUPUSDC_USDC_915 = exports.MORPHO_BLUE_USR_USDC_915 = exports.MORPHO_BLUE_USDE_DAI_915 = exports.MORPHO_BLUE_USDE_DAI_860 = exports.MORPHO_BLUE_SUSDE_DAI_945 = exports.MORPHO_BLUE_SUSDE_DAI_915 = exports.MORPHO_BLUE_SUSDE_DAI_860 = exports.MORPHO_BLUE_WSTETH_ETH_965_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_ETH_945 = exports.MORPHO_BLUE_WEETH_ETH_945 = exports.MORPHO_BLUE_EZETH_ETH_945 = exports.MORPHO_BLUE_EZETH_ETH_860 = exports.MORPHO_BLUE_SUSDE_USDC_915 = exports.MORPHO_BLUE_CBBTC_USDC_860 = exports.MORPHO_BLUE_CBBTC_ETH_915 = exports.MORPHO_BLUE_TBTC_USDC = exports.MORPHO_BLUE_MKR_USDC = exports.MORPHO_BLUE_SUSDE_USDT = exports.MORPHO_BLUE_USDE_USDT = exports.MORPHO_BLUE_WSTETH_PYUSD = exports.MORPHO_BLUE_WSTETH_USDA_EXCHANGE_RATE = exports.MORPHO_BLUE_WSTETH_USDT = exports.MORPHO_BLUE_WBTC_ETH = exports.MORPHO_BLUE_WBTC_PYUSD = exports.MORPHO_BLUE_WBTC_USDT = exports.MORPHO_BLUE_ETH_USDC = exports.MORPHO_BLUE_WBTC_USDC = exports.MORPHO_BLUE_SDAI_USDC = exports.MORPHO_BLUE_WSTETH_USDC = void 0;
|
|
4
|
+
exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.MORPHO_BLUE_WETH_EURC_860_BASE = void 0;
|
|
5
5
|
const utils_1 = require("../../services/utils");
|
|
6
6
|
const types_1 = require("../../types");
|
|
7
7
|
const common_1 = require("../../types/common");
|
|
@@ -522,22 +522,6 @@ const MORPHO_BLUE_LBTC_CBBTC_945 = (networkId = common_1.NetworkNumber.Eth) => (
|
|
|
522
522
|
protocolName: 'morpho-blue',
|
|
523
523
|
});
|
|
524
524
|
exports.MORPHO_BLUE_LBTC_CBBTC_945 = MORPHO_BLUE_LBTC_CBBTC_945;
|
|
525
|
-
const MORPHO_BLUE_SUSDS_USDT_965 = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
526
|
-
chainIds: [1],
|
|
527
|
-
label: 'Morpho',
|
|
528
|
-
shortLabel: 'sUSDS/USDT',
|
|
529
|
-
value: types_1.MorphoBlueVersions.MorphoBluesUSDSUSDT_965,
|
|
530
|
-
url: 'susdsusdt-3274643d',
|
|
531
|
-
loanToken: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
|
|
532
|
-
collateralToken: '0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD',
|
|
533
|
-
oracle: '0x0C426d174FC88B7A25d59945Ab2F7274Bf7B4C79',
|
|
534
|
-
oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
|
|
535
|
-
irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
|
|
536
|
-
lltv: 0.965,
|
|
537
|
-
marketId: '0x3274643db77a064abd3bc851de77556a4ad2e2f502f4f0c80845fa8f909ecf0b',
|
|
538
|
-
protocolName: 'morpho-blue',
|
|
539
|
-
});
|
|
540
|
-
exports.MORPHO_BLUE_SUSDS_USDT_965 = MORPHO_BLUE_SUSDS_USDT_965;
|
|
541
525
|
// ###### BASE ########
|
|
542
526
|
const MORPHO_BLUE_CBETH_USDC_860_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
543
527
|
chainIds: [common_1.NetworkNumber.Base],
|
|
@@ -843,87 +827,6 @@ const MORPHO_BLUE_WETH_EURC_860_BASE = (networkId = common_1.NetworkNumber.Eth)
|
|
|
843
827
|
protocolName: 'morpho-blue',
|
|
844
828
|
});
|
|
845
829
|
exports.MORPHO_BLUE_WETH_EURC_860_BASE = MORPHO_BLUE_WETH_EURC_860_BASE;
|
|
846
|
-
// Arbitrum
|
|
847
|
-
const MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
848
|
-
chainIds: [common_1.NetworkNumber.Arb],
|
|
849
|
-
label: 'Morpho',
|
|
850
|
-
shortLabel: 'syrupUSDC/USDC',
|
|
851
|
-
value: types_1.MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915_Arb,
|
|
852
|
-
url: 'syrupusdcusdc-f86f3edd',
|
|
853
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
854
|
-
collateralToken: '0x41CA7586cC1311807B4605fBB748a3B8862b42b5',
|
|
855
|
-
oracle: '0x8f30fF3d54e69D4dfD5E99a9937474FaDdf27009',
|
|
856
|
-
oracleType: types_1.MorphoBlueOracleType.CONTRACT_RATE,
|
|
857
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
858
|
-
lltv: 0.915,
|
|
859
|
-
marketId: '0xf86f3edd6f16cd8211f4d206866dc4ecd41be6211063ac11f8508e1b7112ef40',
|
|
860
|
-
protocolName: 'morpho-blue',
|
|
861
|
-
});
|
|
862
|
-
exports.MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB = MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB;
|
|
863
|
-
const MorphoBlueWBTCUSDC_860_Arb = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
864
|
-
chainIds: [common_1.NetworkNumber.Arb],
|
|
865
|
-
label: 'Morpho',
|
|
866
|
-
shortLabel: 'WBTC/USDC',
|
|
867
|
-
value: types_1.MorphoBlueVersions.MorphoBlueWBTCUSDC_860_Arb,
|
|
868
|
-
url: 'wbtcusdc-e6392ff1',
|
|
869
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
870
|
-
collateralToken: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',
|
|
871
|
-
oracle: '0x88193FcB705d29724A40Bb818eCAA47dD5F014d9',
|
|
872
|
-
oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
|
|
873
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
874
|
-
lltv: 0.86,
|
|
875
|
-
marketId: '0xe6392ff19d10454b099d692b58c361ef93e31af34ed1ef78232e07c78fe99169',
|
|
876
|
-
protocolName: 'morpho-blue',
|
|
877
|
-
});
|
|
878
|
-
exports.MorphoBlueWBTCUSDC_860_Arb = MorphoBlueWBTCUSDC_860_Arb;
|
|
879
|
-
const MORPHO_BLUE_WSTETH_USDC_860_ARB = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
880
|
-
chainIds: [common_1.NetworkNumber.Arb],
|
|
881
|
-
label: 'Morpho',
|
|
882
|
-
shortLabel: 'wstETH/USDC',
|
|
883
|
-
value: types_1.MorphoBlueVersions.MorphoBlueWstEthUSDC_860_Arb,
|
|
884
|
-
url: 'wstethusdc-33e0c8ab',
|
|
885
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
886
|
-
collateralToken: '0x5979D7b546E38E414F7E9822514be443A4800529',
|
|
887
|
-
oracle: '0x8e02a9b9Cc29d783b2fCB71C3a72651B591cae31',
|
|
888
|
-
oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
|
|
889
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
890
|
-
lltv: 0.86,
|
|
891
|
-
marketId: '0x33e0c8ab132390822b07e5dc95033cf250c963153320b7ffca73220664da2ea0',
|
|
892
|
-
protocolName: 'morpho-blue',
|
|
893
|
-
});
|
|
894
|
-
exports.MORPHO_BLUE_WSTETH_USDC_860_ARB = MORPHO_BLUE_WSTETH_USDC_860_ARB;
|
|
895
|
-
const MORPHO_BLUE_ETH_USDC_860_ARB = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
896
|
-
chainIds: [common_1.NetworkNumber.Arb],
|
|
897
|
-
label: 'Morpho',
|
|
898
|
-
shortLabel: 'ETH/USDC',
|
|
899
|
-
value: types_1.MorphoBlueVersions.MorphoBlueEthUSDC_860_Arb,
|
|
900
|
-
url: 'ethusdc-ca83d02b',
|
|
901
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
902
|
-
collateralToken: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
|
|
903
|
-
oracle: '0x282FEB10549fde52bD61A6979424Ddf18A4971A2',
|
|
904
|
-
oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
|
|
905
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
906
|
-
lltv: 0.86,
|
|
907
|
-
marketId: '0xca83d02be579485cc10945c9597a6141e772f1cf0e0aa28d09a327b6cbd8642c',
|
|
908
|
-
protocolName: 'morpho-blue',
|
|
909
|
-
});
|
|
910
|
-
exports.MORPHO_BLUE_ETH_USDC_860_ARB = MORPHO_BLUE_ETH_USDC_860_ARB;
|
|
911
|
-
const MORPHO_BLUE_SUSDS_USDC_945_ARB = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
912
|
-
chainIds: [common_1.NetworkNumber.Arb],
|
|
913
|
-
label: 'Morpho',
|
|
914
|
-
shortLabel: 'sUSDS/USDC',
|
|
915
|
-
value: types_1.MorphoBlueVersions.MorphoBluesUSDSUSDC_945_Arb,
|
|
916
|
-
url: 'susdsusdc-77fe2f7c',
|
|
917
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
918
|
-
collateralToken: '0xdDb46999F8891663a8F2828d25298f70416d7610',
|
|
919
|
-
oracle: '0x52CC7c3b27bb61D0a83785B5344acC919F8f7124',
|
|
920
|
-
oracleType: types_1.MorphoBlueOracleType.CONTRACT_RATE,
|
|
921
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
922
|
-
lltv: 0.945,
|
|
923
|
-
marketId: '0x77fe2f7c2dd6f4da6bc5f445b06052ff8df55cb70cfce9afc16ec3c69a5fd3a3',
|
|
924
|
-
protocolName: 'morpho-blue',
|
|
925
|
-
});
|
|
926
|
-
exports.MORPHO_BLUE_SUSDS_USDC_945_ARB = MORPHO_BLUE_SUSDS_USDC_945_ARB;
|
|
927
830
|
const MorphoBlueMarkets = (networkId) => ({
|
|
928
831
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthUSDC]: (0, exports.MORPHO_BLUE_WSTETH_USDC)(networkId),
|
|
929
832
|
[types_1.MorphoBlueVersions.MorphoBlueSDAIUSDC]: (0, exports.MORPHO_BLUE_SDAI_USDC)(networkId),
|
|
@@ -950,7 +853,6 @@ const MorphoBlueMarkets = (networkId) => ({
|
|
|
950
853
|
[types_1.MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915]: (0, exports.MORPHO_BLUE_SYRUPUSDC_USDC_915)(networkId),
|
|
951
854
|
[types_1.MorphoBlueVersions.MorphoBlueLBTCUSDC_860]: (0, exports.MORPHO_BLUE_LBTC_USDC_860)(networkId),
|
|
952
855
|
[types_1.MorphoBlueVersions.MorphoBlueLBTCCbBTC_945]: (0, exports.MORPHO_BLUE_LBTC_CBBTC_945)(networkId),
|
|
953
|
-
[types_1.MorphoBlueVersions.MorphoBluesUSDSUSDT_965]: (0, exports.MORPHO_BLUE_SUSDS_USDT_965)(networkId),
|
|
954
856
|
// wstETH/WETH
|
|
955
857
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945)(networkId),
|
|
956
858
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945_Exchange_Rate]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE)(networkId),
|
|
@@ -984,12 +886,6 @@ const MorphoBlueMarkets = (networkId) => ({
|
|
|
984
886
|
// wstETH/WETH Base
|
|
985
887
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945_Base]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945_BASE)(networkId),
|
|
986
888
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthEth_965_Base]: (0, exports.MORPHO_BLUE_WSTETH_ETH_965_BASE)(networkId),
|
|
987
|
-
// Arbitrum
|
|
988
|
-
[types_1.MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915_Arb]: (0, exports.MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB)(networkId),
|
|
989
|
-
[types_1.MorphoBlueVersions.MorphoBlueWBTCUSDC_860_Arb]: (0, exports.MorphoBlueWBTCUSDC_860_Arb)(networkId),
|
|
990
|
-
[types_1.MorphoBlueVersions.MorphoBlueWstEthUSDC_860_Arb]: (0, exports.MORPHO_BLUE_WSTETH_USDC_860_ARB)(networkId),
|
|
991
|
-
[types_1.MorphoBlueVersions.MorphoBlueEthUSDC_860_Arb]: (0, exports.MORPHO_BLUE_ETH_USDC_860_ARB)(networkId),
|
|
992
|
-
[types_1.MorphoBlueVersions.MorphoBluesUSDSUSDC_945_Arb]: (0, exports.MORPHO_BLUE_SUSDS_USDC_945_ARB)(networkId),
|
|
993
889
|
});
|
|
994
890
|
exports.MorphoBlueMarkets = MorphoBlueMarkets;
|
|
995
891
|
const findMorphoBlueMarket = (collateralToken, loanToken, lltv, oracle, irm, network = common_1.NetworkNumber.Eth) => {
|
package/cjs/portfolio/index.js
CHANGED
|
@@ -39,6 +39,7 @@ const compV3_1 = require("../claiming/compV3");
|
|
|
39
39
|
const spark_2 = require("../claiming/spark");
|
|
40
40
|
const morphoBlue_2 = require("../claiming/morphoBlue");
|
|
41
41
|
const king_1 = require("../claiming/king");
|
|
42
|
+
const ethena_1 = require("../claiming/ethena");
|
|
42
43
|
function getPortfolioData(provider, network, defaultProvider, addresses, summerFiAddresses) {
|
|
43
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
45
|
const isMainnet = network === common_1.NetworkNumber.Eth;
|
|
@@ -139,6 +140,7 @@ function getPortfolioData(provider, network, defaultProvider, addresses, summerF
|
|
|
139
140
|
spk: {},
|
|
140
141
|
king: {},
|
|
141
142
|
morpho: {},
|
|
143
|
+
ethena: {},
|
|
142
144
|
};
|
|
143
145
|
}
|
|
144
146
|
yield Promise.allSettled([
|
|
@@ -395,6 +397,27 @@ function getPortfolioData(provider, network, defaultProvider, addresses, summerF
|
|
|
395
397
|
}
|
|
396
398
|
}
|
|
397
399
|
}))(),
|
|
400
|
+
(() => __awaiter(this, void 0, void 0, function* () {
|
|
401
|
+
try {
|
|
402
|
+
const ethenaAirdropRewards = yield (0, ethena_1.fetchEthenaAirdropRewards)(addresses);
|
|
403
|
+
for (const address of addresses) {
|
|
404
|
+
const lowerAddress = address.toLowerCase();
|
|
405
|
+
rewardsData[lowerAddress].spk = {
|
|
406
|
+
error: '',
|
|
407
|
+
data: ethenaAirdropRewards[lowerAddress] || [],
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
catch (error) {
|
|
412
|
+
console.error('Error fetching Ethena Airdrop rewards data:', error);
|
|
413
|
+
for (const address of addresses) {
|
|
414
|
+
rewardsData[address.toLowerCase()].ethena = {
|
|
415
|
+
error: 'Error fetching Ethena Airdrop rewards data in batch',
|
|
416
|
+
data: null,
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}))(),
|
|
398
421
|
]);
|
|
399
422
|
yield Promise.all([
|
|
400
423
|
...aaveV3Markets.map((market) => allAddresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
package/cjs/staking/staking.js
CHANGED
|
@@ -71,7 +71,7 @@ const getApyFromDfsApi = (asset_1, ...args_1) => __awaiter(void 0, [asset_1, ...
|
|
|
71
71
|
exports.STAKING_ASSETS = [
|
|
72
72
|
'cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH',
|
|
73
73
|
'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'tETH', 'PT sUSDe Sep', 'PT USDe Sep',
|
|
74
|
-
'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'syrupUSDC',
|
|
74
|
+
'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'syrupUSDC', 'wstUSR',
|
|
75
75
|
];
|
|
76
76
|
exports.getStakingApy = (0, memoizee_1.default)((asset_1, ...args_1) => __awaiter(void 0, [asset_1, ...args_1], void 0, function* (asset, network = common_1.NetworkNumber.Eth) {
|
|
77
77
|
try {
|
|
@@ -129,6 +129,8 @@ exports.getStakingApy = (0, memoizee_1.default)((asset_1, ...args_1) => __awaite
|
|
|
129
129
|
return yield getApyFromDfsApi('syrupUSDT');
|
|
130
130
|
if (asset === 'syrupUSDC')
|
|
131
131
|
return yield getApyFromDfsApi('syrupUSDC');
|
|
132
|
+
if (asset === 'wstUSR')
|
|
133
|
+
return yield getApyFromDfsApi('wstUSR');
|
|
132
134
|
}
|
|
133
135
|
catch (e) {
|
|
134
136
|
console.error(`Failed to fetch APY for ${asset}`);
|
package/cjs/types/claiming.d.ts
CHANGED
|
@@ -15,7 +15,8 @@ export declare enum ClaimType {
|
|
|
15
15
|
/** Spark Airdrop */
|
|
16
16
|
SPARK_AIRDROP = "SPARK_AIRDROP",
|
|
17
17
|
/** Spark Airdrop */
|
|
18
|
-
SPARK_WST_ETH_REWARDS = "SPARK_WST_ETH_REWARDS"
|
|
18
|
+
SPARK_WST_ETH_REWARDS = "SPARK_WST_ETH_REWARDS",// TODO: This will be removed once we fully refactor spark rewards
|
|
19
|
+
ETHENA_AIRDROP = "ETHENA_AIRDROP"
|
|
19
20
|
}
|
|
20
21
|
type _ClaimableTokenPartial = {
|
|
21
22
|
symbol: string;
|
|
@@ -89,5 +90,8 @@ export type SparkAirdropClaimableToken = _ClaimableTokenPartial & {
|
|
|
89
90
|
export type SparkWstEthRewardsClaimableToken = _ClaimableTokenPartial & {
|
|
90
91
|
claimType: ClaimType.SPARK_WST_ETH_REWARDS;
|
|
91
92
|
};
|
|
92
|
-
export type
|
|
93
|
+
export type EthenaAirdropClaimableToken = _ClaimableTokenPartial & {
|
|
94
|
+
claimType: ClaimType.ETHENA_AIRDROP;
|
|
95
|
+
};
|
|
96
|
+
export type ClaimableToken = AaveRewardsClaimableToken | AaveMeritRewardsClaimableToken | CompoundV3CompClaimableToken | MorphoClaimableToken | SparkRewardsClaimableToken | KingRewardsClaimableToken | SparkAirdropClaimableToken | SparkWstEthRewardsClaimableToken | EthenaAirdropClaimableToken;
|
|
93
97
|
export {};
|
package/cjs/types/claiming.js
CHANGED
|
@@ -19,6 +19,7 @@ var ClaimType;
|
|
|
19
19
|
ClaimType["SPARK_AIRDROP"] = "SPARK_AIRDROP";
|
|
20
20
|
/** Spark Airdrop */
|
|
21
21
|
ClaimType["SPARK_WST_ETH_REWARDS"] = "SPARK_WST_ETH_REWARDS";
|
|
22
|
+
ClaimType["ETHENA_AIRDROP"] = "ETHENA_AIRDROP";
|
|
22
23
|
})(ClaimType || (exports.ClaimType = ClaimType = {}));
|
|
23
24
|
var SparkAirdropType;
|
|
24
25
|
(function (SparkAirdropType) {
|
|
@@ -22,7 +22,6 @@ export declare enum MorphoBlueVersions {
|
|
|
22
22
|
MorphoBlueLBTCCbBTC_945 = "morphobluelbtccbbtc_945",// LBTC/cbBTC
|
|
23
23
|
MorphoBlueUSRUSDC_915 = "morphoblueusrusdc_915",// USR/USDC
|
|
24
24
|
MorphoBlueSyrupUSDCUSDC_915 = "morphobluesyrupusdcusdc_915",// syrupUSDC/USDC
|
|
25
|
-
MorphoBluesUSDSUSDT_965 = "morphobluesusdsusdt_965",// sUSDS/USDT
|
|
26
25
|
MorphoBlueEzEthEth_860 = "morphoblueezetheth_860",
|
|
27
26
|
MorphoBlueEzEthEth_945 = "morphoblueezetheth_945",
|
|
28
27
|
MorphoBlueWeEthEth_945 = "morphoblueweetheth_945",
|
|
@@ -51,12 +50,7 @@ export declare enum MorphoBlueVersions {
|
|
|
51
50
|
MorphoBlueLBTCCbBTC_945_Base = "morphobluelbtccbbtc_945_base",// LBTC/cbBTC
|
|
52
51
|
MorphoBlueWstEthEURC_860_Base = "morphobluewstetheurc_860_base",// wstETH/EURC
|
|
53
52
|
MorphoBlueCbBTCEURC_860_Base = "morphobluecbbtceurc_860_base",// cbBTC/EURC
|
|
54
|
-
MorphoBlueWETHEURC_860_Base = "morphobluewetheurc_860_base"
|
|
55
|
-
MorphoBlueSyrupUSDCUSDC_915_Arb = "morphobluesyrupusdcusdc_915_arb",// syrupUSDC/USDC
|
|
56
|
-
MorphoBlueWBTCUSDC_860_Arb = "morphobluewbtcusdc_860_arb",// WBTC/USDC
|
|
57
|
-
MorphoBlueWstEthUSDC_860_Arb = "morphobluewstethusdc_860_arb",// wstETH/USDC
|
|
58
|
-
MorphoBlueEthUSDC_860_Arb = "morphoblueethusdc_860_arb",// ETH/USDC
|
|
59
|
-
MorphoBluesUSDSUSDC_945_Arb = "morphobluesusdsusdc_945_arb"
|
|
53
|
+
MorphoBlueWETHEURC_860_Base = "morphobluewetheurc_860_base"
|
|
60
54
|
}
|
|
61
55
|
export declare enum MorphoBlueOracleType {
|
|
62
56
|
MARKET_RATE = "Market rate",
|
package/cjs/types/morphoBlue.js
CHANGED
|
@@ -26,7 +26,6 @@ var MorphoBlueVersions;
|
|
|
26
26
|
MorphoBlueVersions["MorphoBlueLBTCCbBTC_945"] = "morphobluelbtccbbtc_945";
|
|
27
27
|
MorphoBlueVersions["MorphoBlueUSRUSDC_915"] = "morphoblueusrusdc_915";
|
|
28
28
|
MorphoBlueVersions["MorphoBlueSyrupUSDCUSDC_915"] = "morphobluesyrupusdcusdc_915";
|
|
29
|
-
MorphoBlueVersions["MorphoBluesUSDSUSDT_965"] = "morphobluesusdsusdt_965";
|
|
30
29
|
// ezETH/ETH
|
|
31
30
|
MorphoBlueVersions["MorphoBlueEzEthEth_860"] = "morphoblueezetheth_860";
|
|
32
31
|
MorphoBlueVersions["MorphoBlueEzEthEth_945"] = "morphoblueezetheth_945";
|
|
@@ -62,12 +61,6 @@ var MorphoBlueVersions;
|
|
|
62
61
|
MorphoBlueVersions["MorphoBlueWstEthEURC_860_Base"] = "morphobluewstetheurc_860_base";
|
|
63
62
|
MorphoBlueVersions["MorphoBlueCbBTCEURC_860_Base"] = "morphobluecbbtceurc_860_base";
|
|
64
63
|
MorphoBlueVersions["MorphoBlueWETHEURC_860_Base"] = "morphobluewetheurc_860_base";
|
|
65
|
-
// ARBITRUM
|
|
66
|
-
MorphoBlueVersions["MorphoBlueSyrupUSDCUSDC_915_Arb"] = "morphobluesyrupusdcusdc_915_arb";
|
|
67
|
-
MorphoBlueVersions["MorphoBlueWBTCUSDC_860_Arb"] = "morphobluewbtcusdc_860_arb";
|
|
68
|
-
MorphoBlueVersions["MorphoBlueWstEthUSDC_860_Arb"] = "morphobluewstethusdc_860_arb";
|
|
69
|
-
MorphoBlueVersions["MorphoBlueEthUSDC_860_Arb"] = "morphoblueethusdc_860_arb";
|
|
70
|
-
MorphoBlueVersions["MorphoBluesUSDSUSDC_945_Arb"] = "morphobluesusdsusdc_945_arb";
|
|
71
64
|
})(MorphoBlueVersions || (exports.MorphoBlueVersions = MorphoBlueVersions = {}));
|
|
72
65
|
var MorphoBlueOracleType;
|
|
73
66
|
(function (MorphoBlueOracleType) {
|
|
@@ -0,0 +1,57 @@
|
|
|
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 { getAssetInfo } from '@defisaver/tokens';
|
|
11
|
+
import Dec from 'decimal.js';
|
|
12
|
+
import { ClaimType } from '../types/claiming';
|
|
13
|
+
export const fetchEthenaAirdropReward = (address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
|
+
try {
|
|
15
|
+
const response = yield fetch(`https://airdrop-data-ethena-s4.s3.us-west-2.amazonaws.com/${address}/0x3d99219fbd49ace3f48d6ca1340e505ec1bdf27d1f8d0e15ec9f286cc9215fcd-${address}.json`);
|
|
16
|
+
console.log(response);
|
|
17
|
+
if (!response.ok) {
|
|
18
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
19
|
+
}
|
|
20
|
+
return yield response.json();
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.error('Error fetching Ethena airdrop rewards:', error);
|
|
24
|
+
return '0';
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
export const fetchEthenaAirdropRewards = (walletAddresses) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
+
console.log('FETCHING ETHENA');
|
|
29
|
+
const apiDataPromises = walletAddresses.map(address => fetchEthenaAirdropReward(address));
|
|
30
|
+
const apiDataArray = yield Promise.all(apiDataPromises);
|
|
31
|
+
console.log(apiDataArray);
|
|
32
|
+
const results = {};
|
|
33
|
+
for (let i = 0; i < walletAddresses.length; i++) {
|
|
34
|
+
const walletAddress = walletAddresses[i];
|
|
35
|
+
const data = apiDataArray[i];
|
|
36
|
+
if (data.length === 0) {
|
|
37
|
+
results[walletAddress.toLowerCase()] = [];
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const processedRewards = [];
|
|
41
|
+
const amount = data.events[0].awardAmount;
|
|
42
|
+
const assetInfo = getAssetInfo('sENA');
|
|
43
|
+
if (new Dec(amount).gt('0')) {
|
|
44
|
+
processedRewards.push({
|
|
45
|
+
symbol: assetInfo.symbol,
|
|
46
|
+
underlyingSymbol: assetInfo.symbol,
|
|
47
|
+
amount,
|
|
48
|
+
claimType: ClaimType.SPARK_AIRDROP,
|
|
49
|
+
tokenAddress: assetInfo.address,
|
|
50
|
+
walletAddress,
|
|
51
|
+
label: 'Ethena Airdrop',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
results[walletAddress.toLowerCase()] = processedRewards;
|
|
55
|
+
}
|
|
56
|
+
return results;
|
|
57
|
+
});
|
|
@@ -74237,10 +74237,6 @@ export declare const MorphoBlueView: {
|
|
|
74237
74237
|
};
|
|
74238
74238
|
};
|
|
74239
74239
|
};
|
|
74240
|
-
readonly "42161": {
|
|
74241
|
-
readonly address: "0xa3b8b400a2eFF0314fa9605E778692bd4Bd9f880";
|
|
74242
|
-
readonly createdBlock: 394369307;
|
|
74243
|
-
};
|
|
74244
74240
|
};
|
|
74245
74241
|
};
|
|
74246
74242
|
export declare const FeedRegistry: {
|
package/esm/config/contracts.js
CHANGED
|
@@ -1051,10 +1051,6 @@ export const MorphoBlueView = {
|
|
|
1051
1051
|
"address": "0xDBCACF59C5063da8B15481F88E7D70E13c92f2a1",
|
|
1052
1052
|
},
|
|
1053
1053
|
},
|
|
1054
|
-
},
|
|
1055
|
-
"42161": {
|
|
1056
|
-
"address": "0xa3b8b400a2eFF0314fa9605E778692bd4Bd9f880",
|
|
1057
|
-
"createdBlock": 394369307,
|
|
1058
1054
|
}
|
|
1059
1055
|
},
|
|
1060
1056
|
};
|
|
@@ -32,7 +32,6 @@ export declare const MORPHO_BLUE_USR_USDC_915: (networkId?: NetworkNumber) => Mo
|
|
|
32
32
|
export declare const MORPHO_BLUE_SYRUPUSDC_USDC_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
33
33
|
export declare const MORPHO_BLUE_LBTC_USDC_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
34
34
|
export declare const MORPHO_BLUE_LBTC_CBBTC_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
35
|
-
export declare const MORPHO_BLUE_SUSDS_USDT_965: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
36
35
|
export declare const MORPHO_BLUE_CBETH_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
37
36
|
export declare const MORPHO_BLUE_CBETH_USDC_860_BASE_1c21c59d: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
38
37
|
export declare const MORPHO_BLUE_WSTETH_ETH_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
@@ -52,11 +51,6 @@ export declare const MORPHO_BLUE_LBTC_CBBTC_945_BASE: (networkId?: NetworkNumber
|
|
|
52
51
|
export declare const MORPHO_BLUE_WSTETH_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
53
52
|
export declare const MORPHO_BLUE_CBBTC_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
54
53
|
export declare const MORPHO_BLUE_WETH_EURC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
55
|
-
export declare const MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
56
|
-
export declare const MorphoBlueWBTCUSDC_860_Arb: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
57
|
-
export declare const MORPHO_BLUE_WSTETH_USDC_860_ARB: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
58
|
-
export declare const MORPHO_BLUE_ETH_USDC_860_ARB: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
59
|
-
export declare const MORPHO_BLUE_SUSDS_USDC_945_ARB: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
60
54
|
export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
61
55
|
readonly morphobluewstethusdc: MorphoBlueMarketData;
|
|
62
56
|
readonly morphobluesdaiusdc: MorphoBlueMarketData;
|
|
@@ -83,7 +77,6 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
|
83
77
|
readonly morphobluesyrupusdcusdc_915: MorphoBlueMarketData;
|
|
84
78
|
readonly morphobluelbtcusdc_860: MorphoBlueMarketData;
|
|
85
79
|
readonly morphobluelbtccbbtc_945: MorphoBlueMarketData;
|
|
86
|
-
readonly morphobluesusdsusdt_965: MorphoBlueMarketData;
|
|
87
80
|
readonly morphobluewstetheth_945: MorphoBlueMarketData;
|
|
88
81
|
readonly morphobluewstetheth_945_exchange_rate: MorphoBlueMarketData;
|
|
89
82
|
readonly morphobluewstetheth_965_exchange_rate: MorphoBlueMarketData;
|
|
@@ -110,10 +103,5 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
|
110
103
|
readonly morphobluecbetheth_965_base: MorphoBlueMarketData;
|
|
111
104
|
readonly morphobluewstetheth_945_base: MorphoBlueMarketData;
|
|
112
105
|
readonly morphobluewstetheth_965_base: MorphoBlueMarketData;
|
|
113
|
-
readonly morphobluesyrupusdcusdc_915_arb: MorphoBlueMarketData;
|
|
114
|
-
readonly morphobluewbtcusdc_860_arb: MorphoBlueMarketData;
|
|
115
|
-
readonly morphobluewstethusdc_860_arb: MorphoBlueMarketData;
|
|
116
|
-
readonly morphoblueethusdc_860_arb: MorphoBlueMarketData;
|
|
117
|
-
readonly morphobluesusdsusdc_945_arb: MorphoBlueMarketData;
|
|
118
106
|
};
|
|
119
107
|
export declare const findMorphoBlueMarket: (collateralToken: string, loanToken: string, lltv: number, oracle: string, irm: string, network?: NetworkNumber) => MorphoBlueMarketData | null;
|
|
@@ -486,21 +486,6 @@ export const MORPHO_BLUE_LBTC_CBBTC_945 = (networkId = NetworkNumber.Eth) => ({
|
|
|
486
486
|
marketId: '0x444bbce85350aae535b037d090c8bdf6cc4cfc6d79e17725413b4cb0f6183ad4',
|
|
487
487
|
protocolName: 'morpho-blue',
|
|
488
488
|
});
|
|
489
|
-
export const MORPHO_BLUE_SUSDS_USDT_965 = (networkId = NetworkNumber.Eth) => ({
|
|
490
|
-
chainIds: [1],
|
|
491
|
-
label: 'Morpho',
|
|
492
|
-
shortLabel: 'sUSDS/USDT',
|
|
493
|
-
value: MorphoBlueVersions.MorphoBluesUSDSUSDT_965,
|
|
494
|
-
url: 'susdsusdt-3274643d',
|
|
495
|
-
loanToken: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
|
|
496
|
-
collateralToken: '0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD',
|
|
497
|
-
oracle: '0x0C426d174FC88B7A25d59945Ab2F7274Bf7B4C79',
|
|
498
|
-
oracleType: MorphoBlueOracleType.MARKET_RATE,
|
|
499
|
-
irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
|
|
500
|
-
lltv: 0.965,
|
|
501
|
-
marketId: '0x3274643db77a064abd3bc851de77556a4ad2e2f502f4f0c80845fa8f909ecf0b',
|
|
502
|
-
protocolName: 'morpho-blue',
|
|
503
|
-
});
|
|
504
489
|
// ###### BASE ########
|
|
505
490
|
export const MORPHO_BLUE_CBETH_USDC_860_BASE = (networkId = NetworkNumber.Eth) => ({
|
|
506
491
|
chainIds: [NetworkNumber.Base],
|
|
@@ -787,82 +772,6 @@ export const MORPHO_BLUE_WETH_EURC_860_BASE = (networkId = NetworkNumber.Eth) =>
|
|
|
787
772
|
marketId: '0xa9b5142fa687a24c275faf731f13b52faa9873252bb4e1cb6077aa1f412edb0b',
|
|
788
773
|
protocolName: 'morpho-blue',
|
|
789
774
|
});
|
|
790
|
-
// Arbitrum
|
|
791
|
-
export const MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB = (networkId = NetworkNumber.Eth) => ({
|
|
792
|
-
chainIds: [NetworkNumber.Arb],
|
|
793
|
-
label: 'Morpho',
|
|
794
|
-
shortLabel: 'syrupUSDC/USDC',
|
|
795
|
-
value: MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915_Arb,
|
|
796
|
-
url: 'syrupusdcusdc-f86f3edd',
|
|
797
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
798
|
-
collateralToken: '0x41CA7586cC1311807B4605fBB748a3B8862b42b5',
|
|
799
|
-
oracle: '0x8f30fF3d54e69D4dfD5E99a9937474FaDdf27009',
|
|
800
|
-
oracleType: MorphoBlueOracleType.CONTRACT_RATE,
|
|
801
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
802
|
-
lltv: 0.915,
|
|
803
|
-
marketId: '0xf86f3edd6f16cd8211f4d206866dc4ecd41be6211063ac11f8508e1b7112ef40',
|
|
804
|
-
protocolName: 'morpho-blue',
|
|
805
|
-
});
|
|
806
|
-
export const MorphoBlueWBTCUSDC_860_Arb = (networkId = NetworkNumber.Eth) => ({
|
|
807
|
-
chainIds: [NetworkNumber.Arb],
|
|
808
|
-
label: 'Morpho',
|
|
809
|
-
shortLabel: 'WBTC/USDC',
|
|
810
|
-
value: MorphoBlueVersions.MorphoBlueWBTCUSDC_860_Arb,
|
|
811
|
-
url: 'wbtcusdc-e6392ff1',
|
|
812
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
813
|
-
collateralToken: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',
|
|
814
|
-
oracle: '0x88193FcB705d29724A40Bb818eCAA47dD5F014d9',
|
|
815
|
-
oracleType: MorphoBlueOracleType.MARKET_RATE,
|
|
816
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
817
|
-
lltv: 0.86,
|
|
818
|
-
marketId: '0xe6392ff19d10454b099d692b58c361ef93e31af34ed1ef78232e07c78fe99169',
|
|
819
|
-
protocolName: 'morpho-blue',
|
|
820
|
-
});
|
|
821
|
-
export const MORPHO_BLUE_WSTETH_USDC_860_ARB = (networkId = NetworkNumber.Eth) => ({
|
|
822
|
-
chainIds: [NetworkNumber.Arb],
|
|
823
|
-
label: 'Morpho',
|
|
824
|
-
shortLabel: 'wstETH/USDC',
|
|
825
|
-
value: MorphoBlueVersions.MorphoBlueWstEthUSDC_860_Arb,
|
|
826
|
-
url: 'wstethusdc-33e0c8ab',
|
|
827
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
828
|
-
collateralToken: '0x5979D7b546E38E414F7E9822514be443A4800529',
|
|
829
|
-
oracle: '0x8e02a9b9Cc29d783b2fCB71C3a72651B591cae31',
|
|
830
|
-
oracleType: MorphoBlueOracleType.MARKET_RATE,
|
|
831
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
832
|
-
lltv: 0.86,
|
|
833
|
-
marketId: '0x33e0c8ab132390822b07e5dc95033cf250c963153320b7ffca73220664da2ea0',
|
|
834
|
-
protocolName: 'morpho-blue',
|
|
835
|
-
});
|
|
836
|
-
export const MORPHO_BLUE_ETH_USDC_860_ARB = (networkId = NetworkNumber.Eth) => ({
|
|
837
|
-
chainIds: [NetworkNumber.Arb],
|
|
838
|
-
label: 'Morpho',
|
|
839
|
-
shortLabel: 'ETH/USDC',
|
|
840
|
-
value: MorphoBlueVersions.MorphoBlueEthUSDC_860_Arb,
|
|
841
|
-
url: 'ethusdc-ca83d02b',
|
|
842
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
843
|
-
collateralToken: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
|
|
844
|
-
oracle: '0x282FEB10549fde52bD61A6979424Ddf18A4971A2',
|
|
845
|
-
oracleType: MorphoBlueOracleType.MARKET_RATE,
|
|
846
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
847
|
-
lltv: 0.86,
|
|
848
|
-
marketId: '0xca83d02be579485cc10945c9597a6141e772f1cf0e0aa28d09a327b6cbd8642c',
|
|
849
|
-
protocolName: 'morpho-blue',
|
|
850
|
-
});
|
|
851
|
-
export const MORPHO_BLUE_SUSDS_USDC_945_ARB = (networkId = NetworkNumber.Eth) => ({
|
|
852
|
-
chainIds: [NetworkNumber.Arb],
|
|
853
|
-
label: 'Morpho',
|
|
854
|
-
shortLabel: 'sUSDS/USDC',
|
|
855
|
-
value: MorphoBlueVersions.MorphoBluesUSDSUSDC_945_Arb,
|
|
856
|
-
url: 'susdsusdc-77fe2f7c',
|
|
857
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
858
|
-
collateralToken: '0xdDb46999F8891663a8F2828d25298f70416d7610',
|
|
859
|
-
oracle: '0x52CC7c3b27bb61D0a83785B5344acC919F8f7124',
|
|
860
|
-
oracleType: MorphoBlueOracleType.CONTRACT_RATE,
|
|
861
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
862
|
-
lltv: 0.945,
|
|
863
|
-
marketId: '0x77fe2f7c2dd6f4da6bc5f445b06052ff8df55cb70cfce9afc16ec3c69a5fd3a3',
|
|
864
|
-
protocolName: 'morpho-blue',
|
|
865
|
-
});
|
|
866
775
|
export const MorphoBlueMarkets = (networkId) => ({
|
|
867
776
|
[MorphoBlueVersions.MorphoBlueWstEthUSDC]: MORPHO_BLUE_WSTETH_USDC(networkId),
|
|
868
777
|
[MorphoBlueVersions.MorphoBlueSDAIUSDC]: MORPHO_BLUE_SDAI_USDC(networkId),
|
|
@@ -889,7 +798,6 @@ export const MorphoBlueMarkets = (networkId) => ({
|
|
|
889
798
|
[MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915]: MORPHO_BLUE_SYRUPUSDC_USDC_915(networkId),
|
|
890
799
|
[MorphoBlueVersions.MorphoBlueLBTCUSDC_860]: MORPHO_BLUE_LBTC_USDC_860(networkId),
|
|
891
800
|
[MorphoBlueVersions.MorphoBlueLBTCCbBTC_945]: MORPHO_BLUE_LBTC_CBBTC_945(networkId),
|
|
892
|
-
[MorphoBlueVersions.MorphoBluesUSDSUSDT_965]: MORPHO_BLUE_SUSDS_USDT_965(networkId),
|
|
893
801
|
// wstETH/WETH
|
|
894
802
|
[MorphoBlueVersions.MorphoBlueWstEthEth_945]: MORPHO_BLUE_WSTETH_ETH_945(networkId),
|
|
895
803
|
[MorphoBlueVersions.MorphoBlueWstEthEth_945_Exchange_Rate]: MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE(networkId),
|
|
@@ -923,12 +831,6 @@ export const MorphoBlueMarkets = (networkId) => ({
|
|
|
923
831
|
// wstETH/WETH Base
|
|
924
832
|
[MorphoBlueVersions.MorphoBlueWstEthEth_945_Base]: MORPHO_BLUE_WSTETH_ETH_945_BASE(networkId),
|
|
925
833
|
[MorphoBlueVersions.MorphoBlueWstEthEth_965_Base]: MORPHO_BLUE_WSTETH_ETH_965_BASE(networkId),
|
|
926
|
-
// Arbitrum
|
|
927
|
-
[MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915_Arb]: MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB(networkId),
|
|
928
|
-
[MorphoBlueVersions.MorphoBlueWBTCUSDC_860_Arb]: MorphoBlueWBTCUSDC_860_Arb(networkId),
|
|
929
|
-
[MorphoBlueVersions.MorphoBlueWstEthUSDC_860_Arb]: MORPHO_BLUE_WSTETH_USDC_860_ARB(networkId),
|
|
930
|
-
[MorphoBlueVersions.MorphoBlueEthUSDC_860_Arb]: MORPHO_BLUE_ETH_USDC_860_ARB(networkId),
|
|
931
|
-
[MorphoBlueVersions.MorphoBluesUSDSUSDC_945_Arb]: MORPHO_BLUE_SUSDS_USDC_945_ARB(networkId),
|
|
932
834
|
});
|
|
933
835
|
export const findMorphoBlueMarket = (collateralToken, loanToken, lltv, oracle, irm, network = NetworkNumber.Eth) => {
|
|
934
836
|
const markets = MorphoBlueMarkets(network);
|
package/esm/portfolio/index.js
CHANGED
|
@@ -33,6 +33,7 @@ import { getCompoundV3Rewards } from '../claiming/compV3';
|
|
|
33
33
|
import { fetchSparkAirdropRewards, fetchSparkRewards } from '../claiming/spark';
|
|
34
34
|
import { fetchMorphoBlueRewards } from '../claiming/morphoBlue';
|
|
35
35
|
import { getKingRewards } from '../claiming/king';
|
|
36
|
+
import { fetchEthenaAirdropRewards } from '../claiming/ethena';
|
|
36
37
|
export function getPortfolioData(provider, network, defaultProvider, addresses, summerFiAddresses) {
|
|
37
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
39
|
const isMainnet = network === NetworkNumber.Eth;
|
|
@@ -133,6 +134,7 @@ export function getPortfolioData(provider, network, defaultProvider, addresses,
|
|
|
133
134
|
spk: {},
|
|
134
135
|
king: {},
|
|
135
136
|
morpho: {},
|
|
137
|
+
ethena: {},
|
|
136
138
|
};
|
|
137
139
|
}
|
|
138
140
|
yield Promise.allSettled([
|
|
@@ -389,6 +391,27 @@ export function getPortfolioData(provider, network, defaultProvider, addresses,
|
|
|
389
391
|
}
|
|
390
392
|
}
|
|
391
393
|
}))(),
|
|
394
|
+
(() => __awaiter(this, void 0, void 0, function* () {
|
|
395
|
+
try {
|
|
396
|
+
const ethenaAirdropRewards = yield fetchEthenaAirdropRewards(addresses);
|
|
397
|
+
for (const address of addresses) {
|
|
398
|
+
const lowerAddress = address.toLowerCase();
|
|
399
|
+
rewardsData[lowerAddress].spk = {
|
|
400
|
+
error: '',
|
|
401
|
+
data: ethenaAirdropRewards[lowerAddress] || [],
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
catch (error) {
|
|
406
|
+
console.error('Error fetching Ethena Airdrop rewards data:', error);
|
|
407
|
+
for (const address of addresses) {
|
|
408
|
+
rewardsData[address.toLowerCase()].ethena = {
|
|
409
|
+
error: 'Error fetching Ethena Airdrop rewards data in batch',
|
|
410
|
+
data: null,
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}))(),
|
|
392
415
|
]);
|
|
393
416
|
yield Promise.all([
|
|
394
417
|
...aaveV3Markets.map((market) => allAddresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
package/esm/staking/staking.js
CHANGED
|
@@ -65,7 +65,7 @@ const getApyFromDfsApi = (asset_1, ...args_1) => __awaiter(void 0, [asset_1, ...
|
|
|
65
65
|
export const STAKING_ASSETS = [
|
|
66
66
|
'cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH',
|
|
67
67
|
'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'tETH', 'PT sUSDe Sep', 'PT USDe Sep',
|
|
68
|
-
'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'syrupUSDC',
|
|
68
|
+
'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'syrupUSDC', 'wstUSR',
|
|
69
69
|
];
|
|
70
70
|
export const getStakingApy = memoize((asset_1, ...args_1) => __awaiter(void 0, [asset_1, ...args_1], void 0, function* (asset, network = NetworkNumber.Eth) {
|
|
71
71
|
try {
|
|
@@ -123,6 +123,8 @@ export const getStakingApy = memoize((asset_1, ...args_1) => __awaiter(void 0, [
|
|
|
123
123
|
return yield getApyFromDfsApi('syrupUSDT');
|
|
124
124
|
if (asset === 'syrupUSDC')
|
|
125
125
|
return yield getApyFromDfsApi('syrupUSDC');
|
|
126
|
+
if (asset === 'wstUSR')
|
|
127
|
+
return yield getApyFromDfsApi('wstUSR');
|
|
126
128
|
}
|
|
127
129
|
catch (e) {
|
|
128
130
|
console.error(`Failed to fetch APY for ${asset}`);
|
package/esm/types/claiming.d.ts
CHANGED
|
@@ -15,7 +15,8 @@ export declare enum ClaimType {
|
|
|
15
15
|
/** Spark Airdrop */
|
|
16
16
|
SPARK_AIRDROP = "SPARK_AIRDROP",
|
|
17
17
|
/** Spark Airdrop */
|
|
18
|
-
SPARK_WST_ETH_REWARDS = "SPARK_WST_ETH_REWARDS"
|
|
18
|
+
SPARK_WST_ETH_REWARDS = "SPARK_WST_ETH_REWARDS",// TODO: This will be removed once we fully refactor spark rewards
|
|
19
|
+
ETHENA_AIRDROP = "ETHENA_AIRDROP"
|
|
19
20
|
}
|
|
20
21
|
type _ClaimableTokenPartial = {
|
|
21
22
|
symbol: string;
|
|
@@ -89,5 +90,8 @@ export type SparkAirdropClaimableToken = _ClaimableTokenPartial & {
|
|
|
89
90
|
export type SparkWstEthRewardsClaimableToken = _ClaimableTokenPartial & {
|
|
90
91
|
claimType: ClaimType.SPARK_WST_ETH_REWARDS;
|
|
91
92
|
};
|
|
92
|
-
export type
|
|
93
|
+
export type EthenaAirdropClaimableToken = _ClaimableTokenPartial & {
|
|
94
|
+
claimType: ClaimType.ETHENA_AIRDROP;
|
|
95
|
+
};
|
|
96
|
+
export type ClaimableToken = AaveRewardsClaimableToken | AaveMeritRewardsClaimableToken | CompoundV3CompClaimableToken | MorphoClaimableToken | SparkRewardsClaimableToken | KingRewardsClaimableToken | SparkAirdropClaimableToken | SparkWstEthRewardsClaimableToken | EthenaAirdropClaimableToken;
|
|
93
97
|
export {};
|
package/esm/types/claiming.js
CHANGED
|
@@ -16,6 +16,7 @@ export var ClaimType;
|
|
|
16
16
|
ClaimType["SPARK_AIRDROP"] = "SPARK_AIRDROP";
|
|
17
17
|
/** Spark Airdrop */
|
|
18
18
|
ClaimType["SPARK_WST_ETH_REWARDS"] = "SPARK_WST_ETH_REWARDS";
|
|
19
|
+
ClaimType["ETHENA_AIRDROP"] = "ETHENA_AIRDROP";
|
|
19
20
|
})(ClaimType || (ClaimType = {}));
|
|
20
21
|
export var SparkAirdropType;
|
|
21
22
|
(function (SparkAirdropType) {
|
|
@@ -22,7 +22,6 @@ export declare enum MorphoBlueVersions {
|
|
|
22
22
|
MorphoBlueLBTCCbBTC_945 = "morphobluelbtccbbtc_945",// LBTC/cbBTC
|
|
23
23
|
MorphoBlueUSRUSDC_915 = "morphoblueusrusdc_915",// USR/USDC
|
|
24
24
|
MorphoBlueSyrupUSDCUSDC_915 = "morphobluesyrupusdcusdc_915",// syrupUSDC/USDC
|
|
25
|
-
MorphoBluesUSDSUSDT_965 = "morphobluesusdsusdt_965",// sUSDS/USDT
|
|
26
25
|
MorphoBlueEzEthEth_860 = "morphoblueezetheth_860",
|
|
27
26
|
MorphoBlueEzEthEth_945 = "morphoblueezetheth_945",
|
|
28
27
|
MorphoBlueWeEthEth_945 = "morphoblueweetheth_945",
|
|
@@ -51,12 +50,7 @@ export declare enum MorphoBlueVersions {
|
|
|
51
50
|
MorphoBlueLBTCCbBTC_945_Base = "morphobluelbtccbbtc_945_base",// LBTC/cbBTC
|
|
52
51
|
MorphoBlueWstEthEURC_860_Base = "morphobluewstetheurc_860_base",// wstETH/EURC
|
|
53
52
|
MorphoBlueCbBTCEURC_860_Base = "morphobluecbbtceurc_860_base",// cbBTC/EURC
|
|
54
|
-
MorphoBlueWETHEURC_860_Base = "morphobluewetheurc_860_base"
|
|
55
|
-
MorphoBlueSyrupUSDCUSDC_915_Arb = "morphobluesyrupusdcusdc_915_arb",// syrupUSDC/USDC
|
|
56
|
-
MorphoBlueWBTCUSDC_860_Arb = "morphobluewbtcusdc_860_arb",// WBTC/USDC
|
|
57
|
-
MorphoBlueWstEthUSDC_860_Arb = "morphobluewstethusdc_860_arb",// wstETH/USDC
|
|
58
|
-
MorphoBlueEthUSDC_860_Arb = "morphoblueethusdc_860_arb",// ETH/USDC
|
|
59
|
-
MorphoBluesUSDSUSDC_945_Arb = "morphobluesusdsusdc_945_arb"
|
|
53
|
+
MorphoBlueWETHEURC_860_Base = "morphobluewetheurc_860_base"
|
|
60
54
|
}
|
|
61
55
|
export declare enum MorphoBlueOracleType {
|
|
62
56
|
MARKET_RATE = "Market rate",
|
package/esm/types/morphoBlue.js
CHANGED
|
@@ -23,7 +23,6 @@ export var MorphoBlueVersions;
|
|
|
23
23
|
MorphoBlueVersions["MorphoBlueLBTCCbBTC_945"] = "morphobluelbtccbbtc_945";
|
|
24
24
|
MorphoBlueVersions["MorphoBlueUSRUSDC_915"] = "morphoblueusrusdc_915";
|
|
25
25
|
MorphoBlueVersions["MorphoBlueSyrupUSDCUSDC_915"] = "morphobluesyrupusdcusdc_915";
|
|
26
|
-
MorphoBlueVersions["MorphoBluesUSDSUSDT_965"] = "morphobluesusdsusdt_965";
|
|
27
26
|
// ezETH/ETH
|
|
28
27
|
MorphoBlueVersions["MorphoBlueEzEthEth_860"] = "morphoblueezetheth_860";
|
|
29
28
|
MorphoBlueVersions["MorphoBlueEzEthEth_945"] = "morphoblueezetheth_945";
|
|
@@ -59,12 +58,6 @@ export var MorphoBlueVersions;
|
|
|
59
58
|
MorphoBlueVersions["MorphoBlueWstEthEURC_860_Base"] = "morphobluewstetheurc_860_base";
|
|
60
59
|
MorphoBlueVersions["MorphoBlueCbBTCEURC_860_Base"] = "morphobluecbbtceurc_860_base";
|
|
61
60
|
MorphoBlueVersions["MorphoBlueWETHEURC_860_Base"] = "morphobluewetheurc_860_base";
|
|
62
|
-
// ARBITRUM
|
|
63
|
-
MorphoBlueVersions["MorphoBlueSyrupUSDCUSDC_915_Arb"] = "morphobluesyrupusdcusdc_915_arb";
|
|
64
|
-
MorphoBlueVersions["MorphoBlueWBTCUSDC_860_Arb"] = "morphobluewbtcusdc_860_arb";
|
|
65
|
-
MorphoBlueVersions["MorphoBlueWstEthUSDC_860_Arb"] = "morphobluewstethusdc_860_arb";
|
|
66
|
-
MorphoBlueVersions["MorphoBlueEthUSDC_860_Arb"] = "morphoblueethusdc_860_arb";
|
|
67
|
-
MorphoBlueVersions["MorphoBluesUSDSUSDC_945_Arb"] = "morphobluesusdsusdc_945_arb";
|
|
68
61
|
})(MorphoBlueVersions || (MorphoBlueVersions = {}));
|
|
69
62
|
export var MorphoBlueOracleType;
|
|
70
63
|
(function (MorphoBlueOracleType) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defisaver/positions-sdk",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.21-dev-ethena",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"author": "",
|
|
22
22
|
"license": "ISC",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@defisaver/tokens": "^1.7.
|
|
24
|
+
"@defisaver/tokens": "^1.7.9",
|
|
25
25
|
"@types/lodash": "^4.17.15",
|
|
26
26
|
"@types/memoizee": "^0.4.12",
|
|
27
27
|
"decimal.js": "^10.6.0",
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { getAssetInfo } from '@defisaver/tokens';
|
|
2
|
+
import Dec from 'decimal.js';
|
|
3
|
+
import { EthAddress } from '../types/common';
|
|
4
|
+
import { ClaimType } from '../types/claiming';
|
|
5
|
+
|
|
6
|
+
export const fetchEthenaAirdropReward = async (address: EthAddress) => {
|
|
7
|
+
try {
|
|
8
|
+
const response = await fetch(`https://airdrop-data-ethena-s4.s3.us-west-2.amazonaws.com/${address}/0x3d99219fbd49ace3f48d6ca1340e505ec1bdf27d1f8d0e15ec9f286cc9215fcd-${address}.json`);
|
|
9
|
+
|
|
10
|
+
console.log(response);
|
|
11
|
+
if (!response.ok) {
|
|
12
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return await response.json();
|
|
16
|
+
} catch (error) {
|
|
17
|
+
console.error('Error fetching Ethena airdrop rewards:', error);
|
|
18
|
+
return '0';
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const fetchEthenaAirdropRewards = async (walletAddresses: EthAddress[]): Promise<Record<string, any[]>> => {
|
|
23
|
+
console.log('FETCHING ETHENA');
|
|
24
|
+
const apiDataPromises = walletAddresses.map(address => fetchEthenaAirdropReward(address));
|
|
25
|
+
const apiDataArray = await Promise.all(apiDataPromises);
|
|
26
|
+
|
|
27
|
+
console.log(apiDataArray);
|
|
28
|
+
const results: Record<string, any[]> = {};
|
|
29
|
+
for (let i = 0; i < walletAddresses.length; i++) {
|
|
30
|
+
const walletAddress = walletAddresses[i];
|
|
31
|
+
const data = apiDataArray[i];
|
|
32
|
+
|
|
33
|
+
if (data.length === 0) {
|
|
34
|
+
results[walletAddress.toLowerCase() as EthAddress] = [];
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const processedRewards = [];
|
|
39
|
+
const amount = data.events[0].awardAmount;
|
|
40
|
+
const assetInfo = getAssetInfo('sENA');
|
|
41
|
+
|
|
42
|
+
if (new Dec(amount).gt('0')) {
|
|
43
|
+
processedRewards.push({
|
|
44
|
+
symbol: assetInfo.symbol,
|
|
45
|
+
underlyingSymbol: assetInfo.symbol,
|
|
46
|
+
amount,
|
|
47
|
+
claimType: ClaimType.SPARK_AIRDROP,
|
|
48
|
+
tokenAddress: assetInfo.address,
|
|
49
|
+
walletAddress,
|
|
50
|
+
label: 'Ethena Airdrop',
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
results[walletAddress.toLowerCase() as EthAddress] = processedRewards;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return results;
|
|
58
|
+
};
|
package/src/config/contracts.ts
CHANGED
|
@@ -1053,10 +1053,6 @@ export const MorphoBlueView = {
|
|
|
1053
1053
|
"address": "0xDBCACF59C5063da8B15481F88E7D70E13c92f2a1",
|
|
1054
1054
|
},
|
|
1055
1055
|
},
|
|
1056
|
-
},
|
|
1057
|
-
"42161": {
|
|
1058
|
-
"address": "0xa3b8b400a2eFF0314fa9605E778692bd4Bd9f880",
|
|
1059
|
-
"createdBlock": 394369307,
|
|
1060
1056
|
}
|
|
1061
1057
|
},
|
|
1062
1058
|
} as const;
|
|
@@ -495,22 +495,6 @@ export const MORPHO_BLUE_LBTC_CBBTC_945 = (networkId: NetworkNumber = NetworkNum
|
|
|
495
495
|
protocolName: 'morpho-blue',
|
|
496
496
|
});
|
|
497
497
|
|
|
498
|
-
export const MORPHO_BLUE_SUSDS_USDT_965 = (networkId: NetworkNumber = NetworkNumber.Eth): MorphoBlueMarketData => ({
|
|
499
|
-
chainIds: [1],
|
|
500
|
-
label: 'Morpho',
|
|
501
|
-
shortLabel: 'sUSDS/USDT',
|
|
502
|
-
value: MorphoBlueVersions.MorphoBluesUSDSUSDT_965,
|
|
503
|
-
url: 'susdsusdt-3274643d',
|
|
504
|
-
loanToken: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
|
|
505
|
-
collateralToken: '0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD',
|
|
506
|
-
oracle: '0x0C426d174FC88B7A25d59945Ab2F7274Bf7B4C79',
|
|
507
|
-
oracleType: MorphoBlueOracleType.MARKET_RATE,
|
|
508
|
-
irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
|
|
509
|
-
lltv: 0.965,
|
|
510
|
-
marketId: '0x3274643db77a064abd3bc851de77556a4ad2e2f502f4f0c80845fa8f909ecf0b',
|
|
511
|
-
protocolName: 'morpho-blue',
|
|
512
|
-
});
|
|
513
|
-
|
|
514
498
|
// ###### BASE ########
|
|
515
499
|
|
|
516
500
|
export const MORPHO_BLUE_CBETH_USDC_860_BASE = (networkId: NetworkNumber = NetworkNumber.Eth): MorphoBlueMarketData => ({
|
|
@@ -805,87 +789,6 @@ export const MORPHO_BLUE_WETH_EURC_860_BASE = (networkId: NetworkNumber = Networ
|
|
|
805
789
|
protocolName: 'morpho-blue',
|
|
806
790
|
});
|
|
807
791
|
|
|
808
|
-
// Arbitrum
|
|
809
|
-
export const MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB = (networkId: NetworkNumber = NetworkNumber.Eth): MorphoBlueMarketData => ({
|
|
810
|
-
chainIds: [NetworkNumber.Arb],
|
|
811
|
-
label: 'Morpho',
|
|
812
|
-
shortLabel: 'syrupUSDC/USDC',
|
|
813
|
-
value: MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915_Arb,
|
|
814
|
-
url: 'syrupusdcusdc-f86f3edd',
|
|
815
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
816
|
-
collateralToken: '0x41CA7586cC1311807B4605fBB748a3B8862b42b5',
|
|
817
|
-
oracle: '0x8f30fF3d54e69D4dfD5E99a9937474FaDdf27009',
|
|
818
|
-
oracleType: MorphoBlueOracleType.CONTRACT_RATE,
|
|
819
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
820
|
-
lltv: 0.915,
|
|
821
|
-
marketId: '0xf86f3edd6f16cd8211f4d206866dc4ecd41be6211063ac11f8508e1b7112ef40',
|
|
822
|
-
protocolName: 'morpho-blue',
|
|
823
|
-
});
|
|
824
|
-
|
|
825
|
-
export const MorphoBlueWBTCUSDC_860_Arb = (networkId: NetworkNumber = NetworkNumber.Eth): MorphoBlueMarketData => ({
|
|
826
|
-
chainIds: [NetworkNumber.Arb],
|
|
827
|
-
label: 'Morpho',
|
|
828
|
-
shortLabel: 'WBTC/USDC',
|
|
829
|
-
value: MorphoBlueVersions.MorphoBlueWBTCUSDC_860_Arb,
|
|
830
|
-
url: 'wbtcusdc-e6392ff1',
|
|
831
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
832
|
-
collateralToken: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',
|
|
833
|
-
oracle: '0x88193FcB705d29724A40Bb818eCAA47dD5F014d9',
|
|
834
|
-
oracleType: MorphoBlueOracleType.MARKET_RATE,
|
|
835
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
836
|
-
lltv: 0.86,
|
|
837
|
-
marketId: '0xe6392ff19d10454b099d692b58c361ef93e31af34ed1ef78232e07c78fe99169',
|
|
838
|
-
protocolName: 'morpho-blue',
|
|
839
|
-
});
|
|
840
|
-
|
|
841
|
-
export const MORPHO_BLUE_WSTETH_USDC_860_ARB = (networkId: NetworkNumber = NetworkNumber.Eth): MorphoBlueMarketData => ({
|
|
842
|
-
chainIds: [NetworkNumber.Arb],
|
|
843
|
-
label: 'Morpho',
|
|
844
|
-
shortLabel: 'wstETH/USDC',
|
|
845
|
-
value: MorphoBlueVersions.MorphoBlueWstEthUSDC_860_Arb,
|
|
846
|
-
url: 'wstethusdc-33e0c8ab',
|
|
847
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
848
|
-
collateralToken: '0x5979D7b546E38E414F7E9822514be443A4800529',
|
|
849
|
-
oracle: '0x8e02a9b9Cc29d783b2fCB71C3a72651B591cae31',
|
|
850
|
-
oracleType: MorphoBlueOracleType.MARKET_RATE,
|
|
851
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
852
|
-
lltv: 0.86,
|
|
853
|
-
marketId: '0x33e0c8ab132390822b07e5dc95033cf250c963153320b7ffca73220664da2ea0',
|
|
854
|
-
protocolName: 'morpho-blue',
|
|
855
|
-
});
|
|
856
|
-
|
|
857
|
-
export const MORPHO_BLUE_ETH_USDC_860_ARB = (networkId: NetworkNumber = NetworkNumber.Eth): MorphoBlueMarketData => ({
|
|
858
|
-
chainIds: [NetworkNumber.Arb],
|
|
859
|
-
label: 'Morpho',
|
|
860
|
-
shortLabel: 'ETH/USDC',
|
|
861
|
-
value: MorphoBlueVersions.MorphoBlueEthUSDC_860_Arb,
|
|
862
|
-
url: 'ethusdc-ca83d02b',
|
|
863
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
864
|
-
collateralToken: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
|
|
865
|
-
oracle: '0x282FEB10549fde52bD61A6979424Ddf18A4971A2',
|
|
866
|
-
oracleType: MorphoBlueOracleType.MARKET_RATE,
|
|
867
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
868
|
-
lltv: 0.86,
|
|
869
|
-
marketId: '0xca83d02be579485cc10945c9597a6141e772f1cf0e0aa28d09a327b6cbd8642c',
|
|
870
|
-
protocolName: 'morpho-blue',
|
|
871
|
-
});
|
|
872
|
-
|
|
873
|
-
export const MORPHO_BLUE_SUSDS_USDC_945_ARB = (networkId: NetworkNumber = NetworkNumber.Eth): MorphoBlueMarketData => ({
|
|
874
|
-
chainIds: [NetworkNumber.Arb],
|
|
875
|
-
label: 'Morpho',
|
|
876
|
-
shortLabel: 'sUSDS/USDC',
|
|
877
|
-
value: MorphoBlueVersions.MorphoBluesUSDSUSDC_945_Arb,
|
|
878
|
-
url: 'susdsusdc-77fe2f7c',
|
|
879
|
-
loanToken: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
880
|
-
collateralToken: '0xdDb46999F8891663a8F2828d25298f70416d7610',
|
|
881
|
-
oracle: '0x52CC7c3b27bb61D0a83785B5344acC919F8f7124',
|
|
882
|
-
oracleType: MorphoBlueOracleType.CONTRACT_RATE,
|
|
883
|
-
irm: '0x66F30587FB8D4206918deb78ecA7d5eBbafD06DA',
|
|
884
|
-
lltv: 0.945,
|
|
885
|
-
marketId: '0x77fe2f7c2dd6f4da6bc5f445b06052ff8df55cb70cfce9afc16ec3c69a5fd3a3',
|
|
886
|
-
protocolName: 'morpho-blue',
|
|
887
|
-
});
|
|
888
|
-
|
|
889
792
|
export const MorphoBlueMarkets = (networkId: NetworkNumber) => ({
|
|
890
793
|
[MorphoBlueVersions.MorphoBlueWstEthUSDC]: MORPHO_BLUE_WSTETH_USDC(networkId),
|
|
891
794
|
[MorphoBlueVersions.MorphoBlueSDAIUSDC]: MORPHO_BLUE_SDAI_USDC(networkId),
|
|
@@ -912,7 +815,6 @@ export const MorphoBlueMarkets = (networkId: NetworkNumber) => ({
|
|
|
912
815
|
[MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915]: MORPHO_BLUE_SYRUPUSDC_USDC_915(networkId),
|
|
913
816
|
[MorphoBlueVersions.MorphoBlueLBTCUSDC_860]: MORPHO_BLUE_LBTC_USDC_860(networkId),
|
|
914
817
|
[MorphoBlueVersions.MorphoBlueLBTCCbBTC_945]: MORPHO_BLUE_LBTC_CBBTC_945(networkId),
|
|
915
|
-
[MorphoBlueVersions.MorphoBluesUSDSUSDT_965]: MORPHO_BLUE_SUSDS_USDT_965(networkId),
|
|
916
818
|
|
|
917
819
|
// wstETH/WETH
|
|
918
820
|
[MorphoBlueVersions.MorphoBlueWstEthEth_945]: MORPHO_BLUE_WSTETH_ETH_945(networkId),
|
|
@@ -952,13 +854,6 @@ export const MorphoBlueMarkets = (networkId: NetworkNumber) => ({
|
|
|
952
854
|
// wstETH/WETH Base
|
|
953
855
|
[MorphoBlueVersions.MorphoBlueWstEthEth_945_Base]: MORPHO_BLUE_WSTETH_ETH_945_BASE(networkId),
|
|
954
856
|
[MorphoBlueVersions.MorphoBlueWstEthEth_965_Base]: MORPHO_BLUE_WSTETH_ETH_965_BASE(networkId),
|
|
955
|
-
|
|
956
|
-
// Arbitrum
|
|
957
|
-
[MorphoBlueVersions.MorphoBlueSyrupUSDCUSDC_915_Arb]: MORPHO_BLUE_SYRUPUSDC_USDC_915_ARB(networkId),
|
|
958
|
-
[MorphoBlueVersions.MorphoBlueWBTCUSDC_860_Arb]: MorphoBlueWBTCUSDC_860_Arb(networkId),
|
|
959
|
-
[MorphoBlueVersions.MorphoBlueWstEthUSDC_860_Arb]: MORPHO_BLUE_WSTETH_USDC_860_ARB(networkId),
|
|
960
|
-
[MorphoBlueVersions.MorphoBlueEthUSDC_860_Arb]: MORPHO_BLUE_ETH_USDC_860_ARB(networkId),
|
|
961
|
-
[MorphoBlueVersions.MorphoBluesUSDSUSDC_945_Arb]: MORPHO_BLUE_SUSDS_USDC_945_ARB(networkId),
|
|
962
857
|
}) as const;
|
|
963
858
|
|
|
964
859
|
export const findMorphoBlueMarket = (collateralToken: string, loanToken: string, lltv: number, oracle: string, irm: string, network = NetworkNumber.Eth) => {
|
package/src/portfolio/index.ts
CHANGED
|
@@ -48,6 +48,7 @@ import { getCompoundV3Rewards } from '../claiming/compV3';
|
|
|
48
48
|
import { fetchSparkAirdropRewards, fetchSparkRewards } from '../claiming/spark';
|
|
49
49
|
import { fetchMorphoBlueRewards } from '../claiming/morphoBlue';
|
|
50
50
|
import { getKingRewards } from '../claiming/king';
|
|
51
|
+
import { fetchEthenaAirdropRewards } from '../claiming/ethena';
|
|
51
52
|
|
|
52
53
|
export async function getPortfolioData(provider: EthereumProvider, network: NetworkNumber, defaultProvider: EthereumProvider, addresses: EthAddress[], summerFiAddresses: EthAddress[]): Promise<{
|
|
53
54
|
positions: PortfolioPositionsData;
|
|
@@ -161,6 +162,7 @@ export async function getPortfolioData(provider: EthereumProvider, network: Netw
|
|
|
161
162
|
spk: {},
|
|
162
163
|
king: {},
|
|
163
164
|
morpho: {},
|
|
165
|
+
ethena: {},
|
|
164
166
|
};
|
|
165
167
|
}
|
|
166
168
|
|
|
@@ -402,6 +404,26 @@ export async function getPortfolioData(provider: EthereumProvider, network: Netw
|
|
|
402
404
|
}
|
|
403
405
|
}
|
|
404
406
|
})(),
|
|
407
|
+
(async () => {
|
|
408
|
+
try {
|
|
409
|
+
const ethenaAirdropRewards = await fetchEthenaAirdropRewards(addresses);
|
|
410
|
+
for (const address of addresses) {
|
|
411
|
+
const lowerAddress = address.toLowerCase() as EthAddress;
|
|
412
|
+
rewardsData[lowerAddress].spk = {
|
|
413
|
+
error: '',
|
|
414
|
+
data: ethenaAirdropRewards[lowerAddress] || [],
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
} catch (error) {
|
|
418
|
+
console.error('Error fetching Ethena Airdrop rewards data:', error);
|
|
419
|
+
for (const address of addresses) {
|
|
420
|
+
rewardsData[address.toLowerCase() as EthAddress].ethena = {
|
|
421
|
+
error: 'Error fetching Ethena Airdrop rewards data in batch',
|
|
422
|
+
data: null,
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
})(),
|
|
405
427
|
]);
|
|
406
428
|
|
|
407
429
|
|
package/src/staking/staking.ts
CHANGED
|
@@ -63,7 +63,7 @@ const getApyFromDfsApi = async (asset: string, network: number = NetworkNumber.E
|
|
|
63
63
|
export const STAKING_ASSETS = [
|
|
64
64
|
'cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH',
|
|
65
65
|
'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'tETH', 'PT sUSDe Sep', 'PT USDe Sep',
|
|
66
|
-
'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'syrupUSDC',
|
|
66
|
+
'PT sUSDe Nov', 'PT USDe Nov', 'PT USDe Jan', 'PT sUSDe Jan', 'wrsETH', 'wstETH', 'syrupUSDT', 'syrupUSDC', 'wstUSR',
|
|
67
67
|
];
|
|
68
68
|
|
|
69
69
|
export const getStakingApy = memoize(async (asset: string, network: number = NetworkNumber.Eth) => {
|
|
@@ -95,6 +95,7 @@ export const getStakingApy = memoize(async (asset: string, network: number = Net
|
|
|
95
95
|
if (asset === 'PT sUSDe Jan') return await getApyFromDfsApi('PT sUSDe Jan', network);
|
|
96
96
|
if (asset === 'syrupUSDT') return await getApyFromDfsApi('syrupUSDT');
|
|
97
97
|
if (asset === 'syrupUSDC') return await getApyFromDfsApi('syrupUSDC');
|
|
98
|
+
if (asset === 'wstUSR') return await getApyFromDfsApi('wstUSR');
|
|
98
99
|
} catch (e) {
|
|
99
100
|
console.error(`Failed to fetch APY for ${asset}`);
|
|
100
101
|
}
|
package/src/types/claiming.ts
CHANGED
|
@@ -17,6 +17,8 @@ export enum ClaimType {
|
|
|
17
17
|
SPARK_AIRDROP = 'SPARK_AIRDROP',
|
|
18
18
|
/** Spark Airdrop */
|
|
19
19
|
SPARK_WST_ETH_REWARDS = 'SPARK_WST_ETH_REWARDS', // TODO: This will be removed once we fully refactor spark rewards
|
|
20
|
+
|
|
21
|
+
ETHENA_AIRDROP = 'ETHENA_AIRDROP',
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
type _ClaimableTokenPartial = {
|
|
@@ -98,6 +100,8 @@ export type SparkAirdropClaimableToken = _ClaimableTokenPartial & {
|
|
|
98
100
|
|
|
99
101
|
export type SparkWstEthRewardsClaimableToken = _ClaimableTokenPartial & { claimType: ClaimType.SPARK_WST_ETH_REWARDS };
|
|
100
102
|
|
|
103
|
+
export type EthenaAirdropClaimableToken = _ClaimableTokenPartial & { claimType: ClaimType.ETHENA_AIRDROP };
|
|
104
|
+
|
|
101
105
|
export type ClaimableToken =
|
|
102
106
|
AaveRewardsClaimableToken
|
|
103
107
|
| AaveMeritRewardsClaimableToken
|
|
@@ -106,4 +110,5 @@ export type ClaimableToken =
|
|
|
106
110
|
| SparkRewardsClaimableToken
|
|
107
111
|
| KingRewardsClaimableToken
|
|
108
112
|
| SparkAirdropClaimableToken
|
|
109
|
-
| SparkWstEthRewardsClaimableToken
|
|
113
|
+
| SparkWstEthRewardsClaimableToken
|
|
114
|
+
| EthenaAirdropClaimableToken;
|
package/src/types/morphoBlue.ts
CHANGED
|
@@ -26,7 +26,6 @@ export enum MorphoBlueVersions {
|
|
|
26
26
|
MorphoBlueLBTCCbBTC_945 = 'morphobluelbtccbbtc_945', // LBTC/cbBTC
|
|
27
27
|
MorphoBlueUSRUSDC_915 = 'morphoblueusrusdc_915', // USR/USDC
|
|
28
28
|
MorphoBlueSyrupUSDCUSDC_915 = 'morphobluesyrupusdcusdc_915', // syrupUSDC/USDC
|
|
29
|
-
MorphoBluesUSDSUSDT_965 = 'morphobluesusdsusdt_965', // sUSDS/USDT
|
|
30
29
|
// ezETH/ETH
|
|
31
30
|
MorphoBlueEzEthEth_860 = 'morphoblueezetheth_860',
|
|
32
31
|
MorphoBlueEzEthEth_945 = 'morphoblueezetheth_945',
|
|
@@ -63,13 +62,6 @@ export enum MorphoBlueVersions {
|
|
|
63
62
|
MorphoBlueWstEthEURC_860_Base = 'morphobluewstetheurc_860_base', // wstETH/EURC
|
|
64
63
|
MorphoBlueCbBTCEURC_860_Base = 'morphobluecbbtceurc_860_base', // cbBTC/EURC
|
|
65
64
|
MorphoBlueWETHEURC_860_Base = 'morphobluewetheurc_860_base', // WETH/EURC
|
|
66
|
-
|
|
67
|
-
// ARBITRUM
|
|
68
|
-
MorphoBlueSyrupUSDCUSDC_915_Arb = 'morphobluesyrupusdcusdc_915_arb', // syrupUSDC/USDC
|
|
69
|
-
MorphoBlueWBTCUSDC_860_Arb = 'morphobluewbtcusdc_860_arb', // WBTC/USDC
|
|
70
|
-
MorphoBlueWstEthUSDC_860_Arb = 'morphobluewstethusdc_860_arb', // wstETH/USDC
|
|
71
|
-
MorphoBlueEthUSDC_860_Arb = 'morphoblueethusdc_860_arb', // ETH/USDC
|
|
72
|
-
MorphoBluesUSDSUSDC_945_Arb = 'morphobluesusdsusdc_945_arb', // sUSDS/USDC
|
|
73
65
|
}
|
|
74
66
|
|
|
75
67
|
export enum MorphoBlueOracleType {
|