@defisaver/positions-sdk 0.0.165 → 0.0.166-dev
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/config/contracts.d.ts +72 -0
- package/cjs/config/contracts.js +6 -0
- package/cjs/contracts.d.ts +1 -0
- package/cjs/contracts.js +2 -1
- package/cjs/eulerV2/index.d.ts +40 -0
- package/cjs/eulerV2/index.js +207 -0
- package/cjs/helpers/eulerHelpers/index.d.ts +27 -0
- package/cjs/helpers/eulerHelpers/index.js +232 -0
- package/cjs/helpers/index.d.ts +1 -0
- package/cjs/helpers/index.js +2 -1
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +3 -1
- package/cjs/markets/compound/marketsAssets.js +3 -3
- package/cjs/markets/euler/index.d.ts +10 -0
- package/cjs/markets/euler/index.js +41 -0
- package/cjs/markets/index.d.ts +1 -0
- package/cjs/markets/index.js +3 -1
- package/cjs/markets/morphoBlue/index.d.ts +0 -4
- package/cjs/markets/morphoBlue/index.js +1 -36
- package/cjs/markets/spark/marketAssets.js +1 -1
- package/cjs/services/utils.d.ts +2 -0
- package/cjs/services/utils.js +4 -1
- package/cjs/staking/staking.js +1 -22
- package/cjs/types/contracts/generated/EulerV2View.d.ts +333 -0
- package/cjs/types/contracts/generated/EulerV2View.js +5 -0
- package/cjs/types/contracts/generated/index.d.ts +1 -0
- package/cjs/types/euler.d.ts +148 -0
- package/cjs/types/euler.js +15 -0
- package/cjs/types/index.d.ts +1 -0
- package/cjs/types/index.js +1 -0
- package/cjs/types/morphoBlue.d.ts +1 -3
- package/cjs/types/morphoBlue.js +0 -2
- package/esm/config/contracts.d.ts +72 -0
- package/esm/config/contracts.js +6 -0
- package/esm/contracts.d.ts +1 -0
- package/esm/contracts.js +1 -0
- package/esm/eulerV2/index.d.ts +40 -0
- package/esm/eulerV2/index.js +199 -0
- package/esm/helpers/eulerHelpers/index.d.ts +27 -0
- package/esm/helpers/eulerHelpers/index.js +219 -0
- package/esm/helpers/index.d.ts +1 -0
- package/esm/helpers/index.js +1 -0
- package/esm/index.d.ts +2 -1
- package/esm/index.js +2 -1
- package/esm/markets/compound/marketsAssets.js +3 -3
- package/esm/markets/euler/index.d.ts +10 -0
- package/esm/markets/euler/index.js +34 -0
- package/esm/markets/index.d.ts +1 -0
- package/esm/markets/index.js +1 -0
- package/esm/markets/morphoBlue/index.d.ts +0 -4
- package/esm/markets/morphoBlue/index.js +0 -33
- package/esm/markets/spark/marketAssets.js +1 -1
- package/esm/services/utils.d.ts +2 -0
- package/esm/services/utils.js +2 -0
- package/esm/staking/staking.js +1 -22
- package/esm/types/contracts/generated/EulerV2View.d.ts +333 -0
- package/esm/types/contracts/generated/EulerV2View.js +4 -0
- package/esm/types/contracts/generated/index.d.ts +1 -0
- package/esm/types/euler.d.ts +148 -0
- package/esm/types/euler.js +12 -0
- package/esm/types/index.d.ts +1 -0
- package/esm/types/index.js +1 -0
- package/esm/types/morphoBlue.d.ts +1 -3
- package/esm/types/morphoBlue.js +0 -2
- package/package.json +5 -9
- package/src/config/contracts.js +6 -0
- package/src/contracts.ts +2 -0
- package/src/eulerV2/index.ts +286 -0
- package/src/helpers/eulerHelpers/index.ts +231 -0
- package/src/helpers/index.ts +2 -1
- package/src/index.ts +2 -0
- package/src/markets/compound/marketsAssets.ts +3 -3
- package/src/markets/euler/index.ts +38 -0
- package/src/markets/index.ts +3 -1
- package/src/markets/morphoBlue/index.ts +0 -37
- package/src/markets/spark/marketAssets.ts +1 -1
- package/src/services/utils.ts +3 -0
- package/src/staking/staking.ts +2 -24
- package/src/types/contracts/generated/EulerV2View.ts +434 -0
- package/src/types/contracts/generated/index.ts +1 -0
- package/src/types/euler.ts +171 -0
- package/src/types/index.ts +2 -1
- package/src/types/morphoBlue.ts +0 -2
|
@@ -0,0 +1,232 @@
|
|
|
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 __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.getApyAfterValuesEstimationEulerV2 = exports.getEulerV2SupplyRate = exports.getUtilizationRate = exports.getEulerV2BorrowRate = exports.getEulerV2AggregatedData = exports.calculateNetApy = exports.isLeveragedPos = void 0;
|
|
27
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
28
|
+
const tokens_1 = require("@defisaver/tokens");
|
|
29
|
+
const moneymarket_1 = require("../../moneymarket");
|
|
30
|
+
const staking_1 = require("../../staking");
|
|
31
|
+
const contracts_1 = require("../../contracts");
|
|
32
|
+
const constants_1 = require("../../constants");
|
|
33
|
+
const multicall_1 = require("../../multicall");
|
|
34
|
+
const isLeveragedPos = (usedAssets, dustLimit = 5) => {
|
|
35
|
+
let borrowUnstable = 0;
|
|
36
|
+
let supplyStable = 0;
|
|
37
|
+
let borrowStable = 0;
|
|
38
|
+
let supplyUnstable = 0;
|
|
39
|
+
let longAsset = '';
|
|
40
|
+
let shortAsset = '';
|
|
41
|
+
let leverageAssetVault = '';
|
|
42
|
+
Object.values(usedAssets).forEach(({ symbol, suppliedUsd, borrowedUsd, collateral, vaultAddress, }) => {
|
|
43
|
+
const isSupplied = (+suppliedUsd) > dustLimit; // ignore dust like <limit leftover supply
|
|
44
|
+
const isBorrowed = (+borrowedUsd) > dustLimit; // ignore dust like <limit leftover supply
|
|
45
|
+
if (isSupplied && moneymarket_1.STABLE_ASSETS.includes(symbol) && collateral)
|
|
46
|
+
supplyStable += 1;
|
|
47
|
+
if (isBorrowed && moneymarket_1.STABLE_ASSETS.includes(symbol))
|
|
48
|
+
borrowStable += 1;
|
|
49
|
+
if (isBorrowed && !moneymarket_1.STABLE_ASSETS.includes(symbol)) {
|
|
50
|
+
borrowUnstable += 1;
|
|
51
|
+
shortAsset = symbol;
|
|
52
|
+
leverageAssetVault = vaultAddress;
|
|
53
|
+
}
|
|
54
|
+
if (isSupplied && !moneymarket_1.STABLE_ASSETS.includes(symbol) && collateral) {
|
|
55
|
+
supplyUnstable += 1;
|
|
56
|
+
longAsset = symbol;
|
|
57
|
+
leverageAssetVault = vaultAddress;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
const isLong = borrowStable > 0 && borrowUnstable === 0 && supplyUnstable === 1 && supplyStable === 0;
|
|
61
|
+
const isShort = supplyStable > 0 && supplyUnstable === 0 && borrowUnstable === 1 && borrowStable === 0;
|
|
62
|
+
// lsd -> liquid staking derivative
|
|
63
|
+
const isLsdLeveraged = supplyUnstable === 1 && borrowUnstable === 1 && shortAsset === 'ETH' && ['stETH', 'wstETH', 'cbETH', 'rETH'].includes(longAsset);
|
|
64
|
+
if (isLong) {
|
|
65
|
+
return {
|
|
66
|
+
leveragedType: 'long',
|
|
67
|
+
leveragedAsset: longAsset,
|
|
68
|
+
leveragedVault: leverageAssetVault,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (isShort) {
|
|
72
|
+
return {
|
|
73
|
+
leveragedType: 'short',
|
|
74
|
+
leveragedAsset: shortAsset,
|
|
75
|
+
leveragedVault: leverageAssetVault,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (isLsdLeveraged) {
|
|
79
|
+
return {
|
|
80
|
+
leveragedType: 'lsd-leverage',
|
|
81
|
+
leveragedAsset: longAsset,
|
|
82
|
+
leveragedVault: leverageAssetVault,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
leveragedType: '',
|
|
87
|
+
leveragedAsset: '',
|
|
88
|
+
leveragedVault: '',
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
exports.isLeveragedPos = isLeveragedPos;
|
|
92
|
+
const calculateNetApy = (usedAssets, assetsData) => {
|
|
93
|
+
const sumValues = Object.values(usedAssets).reduce((_acc, usedAsset) => {
|
|
94
|
+
const acc = Object.assign({}, _acc);
|
|
95
|
+
const assetData = assetsData[usedAsset.vaultAddress.toLowerCase()];
|
|
96
|
+
if (usedAsset.isSupplied) {
|
|
97
|
+
const amount = usedAsset.suppliedUsd;
|
|
98
|
+
acc.suppliedUsd = new decimal_js_1.default(acc.suppliedUsd).add(amount).toString();
|
|
99
|
+
const rate = assetData.supplyRate;
|
|
100
|
+
const supplyInterest = (0, staking_1.calculateInterestEarned)(amount, rate, 'year', true);
|
|
101
|
+
acc.supplyInterest = new decimal_js_1.default(acc.supplyInterest).add(supplyInterest.toString()).toString();
|
|
102
|
+
}
|
|
103
|
+
if (usedAsset.isBorrowed) {
|
|
104
|
+
const amount = usedAsset.borrowedUsd;
|
|
105
|
+
acc.borrowedUsd = new decimal_js_1.default(acc.borrowedUsd).add(amount).toString();
|
|
106
|
+
const rate = assetData.borrowRate;
|
|
107
|
+
const borrowInterest = (0, staking_1.calculateInterestEarned)(amount, rate, 'year', true);
|
|
108
|
+
acc.borrowInterest = new decimal_js_1.default(acc.borrowInterest).sub(borrowInterest.toString()).toString();
|
|
109
|
+
}
|
|
110
|
+
return acc;
|
|
111
|
+
}, {
|
|
112
|
+
borrowInterest: '0', supplyInterest: '0', incentiveUsd: '0', borrowedUsd: '0', suppliedUsd: '0',
|
|
113
|
+
});
|
|
114
|
+
const { borrowedUsd, suppliedUsd, borrowInterest, supplyInterest, incentiveUsd, } = sumValues;
|
|
115
|
+
const totalInterestUsd = new decimal_js_1.default(borrowInterest).add(supplyInterest).add(incentiveUsd).toString();
|
|
116
|
+
const balance = new decimal_js_1.default(suppliedUsd).sub(borrowedUsd);
|
|
117
|
+
const netApy = new decimal_js_1.default(totalInterestUsd).div(balance).times(100).toString();
|
|
118
|
+
return { netApy, totalInterestUsd, incentiveUsd };
|
|
119
|
+
};
|
|
120
|
+
exports.calculateNetApy = calculateNetApy;
|
|
121
|
+
const getEulerV2AggregatedData = (_a) => {
|
|
122
|
+
var { usedAssets, assetsData, network } = _a, rest = __rest(_a, ["usedAssets", "assetsData", "network"]);
|
|
123
|
+
const payload = {};
|
|
124
|
+
payload.suppliedUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied }) => isSupplied, ({ suppliedUsd }) => suppliedUsd);
|
|
125
|
+
payload.suppliedCollateralUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ suppliedUsd }) => suppliedUsd);
|
|
126
|
+
payload.borrowedUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isBorrowed }) => isBorrowed, ({ borrowedUsd }) => borrowedUsd);
|
|
127
|
+
payload.borrowLimitUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ vaultAddress, suppliedUsd }) => new decimal_js_1.default(suppliedUsd).mul(assetsData[vaultAddress.toLowerCase()].collateralFactor));
|
|
128
|
+
payload.liquidationLimitUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ vaultAddress, suppliedUsd }) => new decimal_js_1.default(suppliedUsd).mul(assetsData[vaultAddress.toLowerCase()].liquidationRatio));
|
|
129
|
+
const leftToBorrowUsd = new decimal_js_1.default(payload.borrowLimitUsd).sub(payload.borrowedUsd);
|
|
130
|
+
payload.leftToBorrowUsd = leftToBorrowUsd.lte('0') ? '0' : leftToBorrowUsd.toString();
|
|
131
|
+
payload.ratio = +payload.suppliedUsd ? new decimal_js_1.default(payload.borrowLimitUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
|
|
132
|
+
payload.collRatio = +payload.suppliedUsd ? new decimal_js_1.default(payload.suppliedCollateralUsd).div(payload.borrowedUsd).mul(100).toString() : '0';
|
|
133
|
+
const { netApy, incentiveUsd, totalInterestUsd } = (0, exports.calculateNetApy)(usedAssets, assetsData);
|
|
134
|
+
payload.netApy = netApy;
|
|
135
|
+
payload.incentiveUsd = incentiveUsd;
|
|
136
|
+
payload.totalInterestUsd = totalInterestUsd;
|
|
137
|
+
payload.minRatio = '100';
|
|
138
|
+
payload.liqRatio = new decimal_js_1.default(payload.borrowLimitUsd).div(payload.liquidationLimitUsd).toString();
|
|
139
|
+
payload.liqPercent = new decimal_js_1.default(payload.borrowLimitUsd).div(payload.liquidationLimitUsd).mul(100).toString();
|
|
140
|
+
const { leveragedType, leveragedAsset, leveragedVault } = (0, exports.isLeveragedPos)(usedAssets);
|
|
141
|
+
payload.leveragedType = leveragedType;
|
|
142
|
+
if (leveragedType !== '') {
|
|
143
|
+
payload.leveragedAsset = leveragedAsset;
|
|
144
|
+
let assetPrice = assetsData[leveragedVault.toLowerCase()].price;
|
|
145
|
+
if (leveragedType === 'lsd-leverage') {
|
|
146
|
+
const ethAsset = Object.values(assetsData).find((asset) => ['WETH', 'ETH'].includes(asset.symbol));
|
|
147
|
+
if (ethAsset) {
|
|
148
|
+
payload.leveragedLsdAssetRatio = new decimal_js_1.default(assetsData[leveragedVault.toLowerCase()].price).div(ethAsset.price).toString();
|
|
149
|
+
assetPrice = new decimal_js_1.default(assetPrice).div(ethAsset.price).toString();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
payload.liquidationPrice = (0, moneymarket_1.calcLeverageLiqPrice)(leveragedType, assetPrice, payload.borrowedUsd, payload.liquidationLimitUsd);
|
|
153
|
+
}
|
|
154
|
+
return payload;
|
|
155
|
+
};
|
|
156
|
+
exports.getEulerV2AggregatedData = getEulerV2AggregatedData;
|
|
157
|
+
const getEulerV2BorrowRate = (interestRate) => {
|
|
158
|
+
const _interestRate = new decimal_js_1.default(interestRate).div(1e27).toString();
|
|
159
|
+
const secondsPerYear = 31556953;
|
|
160
|
+
const a = new decimal_js_1.default(1).plus(_interestRate).pow(secondsPerYear - 1).toString();
|
|
161
|
+
return new decimal_js_1.default(new decimal_js_1.default(a).minus(1)).mul(100).toString();
|
|
162
|
+
};
|
|
163
|
+
exports.getEulerV2BorrowRate = getEulerV2BorrowRate;
|
|
164
|
+
const getUtilizationRate = (totalBorrows, totalAssets) => new decimal_js_1.default(totalBorrows).div(totalAssets).toString();
|
|
165
|
+
exports.getUtilizationRate = getUtilizationRate;
|
|
166
|
+
const getEulerV2SupplyRate = (borrowRate, utilizationRate, _interestFee) => {
|
|
167
|
+
const interestFee = new decimal_js_1.default(_interestFee).div(10000);
|
|
168
|
+
const fee = new decimal_js_1.default(1).minus(interestFee);
|
|
169
|
+
return new decimal_js_1.default(borrowRate).mul(utilizationRate).mul(fee).toString();
|
|
170
|
+
};
|
|
171
|
+
exports.getEulerV2SupplyRate = getEulerV2SupplyRate;
|
|
172
|
+
const getLiquidityChanges = (action, amount, isBorrowOperation) => {
|
|
173
|
+
let liquidityAdded;
|
|
174
|
+
let liquidityRemoved;
|
|
175
|
+
if (isBorrowOperation) {
|
|
176
|
+
liquidityAdded = action === 'payback' ? amount : '0';
|
|
177
|
+
liquidityRemoved = action === 'borrow' ? amount : '0';
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
liquidityAdded = action === 'collateral' ? amount : '0';
|
|
181
|
+
liquidityRemoved = action === 'withdraw' ? amount : '0';
|
|
182
|
+
}
|
|
183
|
+
return { liquidityAdded, liquidityRemoved };
|
|
184
|
+
};
|
|
185
|
+
const getApyAfterValuesEstimationEulerV2 = (actions, web3, network) => __awaiter(void 0, void 0, void 0, function* () {
|
|
186
|
+
const eulerV2ViewContract = (0, contracts_1.EulerV2ViewContract)(web3, network);
|
|
187
|
+
const multicallData = [];
|
|
188
|
+
const apyAfterValuesEstimationParams = [];
|
|
189
|
+
actions.forEach(({ action, amount, asset, vaultAddress, }) => {
|
|
190
|
+
const amountInWei = (0, tokens_1.assetAmountInWei)(amount, asset);
|
|
191
|
+
const isBorrowOperation = constants_1.borrowOperations.includes(action);
|
|
192
|
+
const { liquidityAdded, liquidityRemoved } = getLiquidityChanges(action, amountInWei, isBorrowOperation);
|
|
193
|
+
apyAfterValuesEstimationParams.push([
|
|
194
|
+
vaultAddress,
|
|
195
|
+
constants_1.borrowOperations.includes(action),
|
|
196
|
+
liquidityAdded,
|
|
197
|
+
liquidityRemoved,
|
|
198
|
+
]);
|
|
199
|
+
multicallData.push({
|
|
200
|
+
target: eulerV2ViewContract.options.address,
|
|
201
|
+
abiItem: eulerV2ViewContract.options.jsonInterface.find(({ name }) => name === 'getVaultInfoFull'),
|
|
202
|
+
params: [vaultAddress],
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
multicallData.push({
|
|
206
|
+
target: eulerV2ViewContract.options.address,
|
|
207
|
+
abiItem: eulerV2ViewContract.options.jsonInterface.find(({ name }) => name === 'getApyAfterValuesEstimation'),
|
|
208
|
+
params: [apyAfterValuesEstimationParams],
|
|
209
|
+
});
|
|
210
|
+
const multicallRes = yield (0, multicall_1.multicall)(multicallData, web3, network);
|
|
211
|
+
const numOfActions = actions.length;
|
|
212
|
+
const data = {};
|
|
213
|
+
for (let i = 0; i < numOfActions; i += 1) {
|
|
214
|
+
const _interestRate = multicallRes[numOfActions].estimatedBorrowRates[i];
|
|
215
|
+
const vaultInfo = multicallRes[i][0];
|
|
216
|
+
const decimals = vaultInfo.decimals;
|
|
217
|
+
const borrowRate = (0, exports.getEulerV2BorrowRate)(_interestRate);
|
|
218
|
+
const amount = new decimal_js_1.default(actions[i].amount).mul(Math.pow(10, decimals)).toString();
|
|
219
|
+
const action = actions[i].action;
|
|
220
|
+
const isBorrowOperation = constants_1.borrowOperations.includes(action);
|
|
221
|
+
const { liquidityAdded, liquidityRemoved } = getLiquidityChanges(action, amount, isBorrowOperation);
|
|
222
|
+
const totalBorrows = new decimal_js_1.default(vaultInfo.totalBorrows).add(isBorrowOperation ? liquidityRemoved : '0').sub(isBorrowOperation ? liquidityAdded : '0').toString();
|
|
223
|
+
const totalAssets = new decimal_js_1.default(vaultInfo.totalAssets).add(isBorrowOperation ? '0' : liquidityAdded).sub(isBorrowOperation ? '0' : liquidityRemoved).toString();
|
|
224
|
+
const utilizationRate = (0, exports.getUtilizationRate)(totalBorrows, totalAssets);
|
|
225
|
+
data[vaultInfo.vaultAddr.toLowerCase()] = {
|
|
226
|
+
borrowRate,
|
|
227
|
+
supplyRate: (0, exports.getEulerV2SupplyRate)(borrowRate, utilizationRate, vaultInfo.interestFee),
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
return data;
|
|
231
|
+
});
|
|
232
|
+
exports.getApyAfterValuesEstimationEulerV2 = getApyAfterValuesEstimationEulerV2;
|
package/cjs/helpers/index.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export * as makerHelpers from './makerHelpers';
|
|
|
6
6
|
export * as chickenBondsHelpers from './chickenBondsHelpers';
|
|
7
7
|
export * as morphoBlueHelpers from './morphoBlueHelpers';
|
|
8
8
|
export * as llamaLendHelpers from './llamaLendHelpers';
|
|
9
|
+
export * as eulerV2Helpers from './eulerHelpers';
|
package/cjs/helpers/index.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.llamaLendHelpers = exports.morphoBlueHelpers = exports.chickenBondsHelpers = exports.makerHelpers = exports.curveUsdHelpers = exports.sparkHelpers = exports.compoundHelpers = exports.aaveHelpers = void 0;
|
|
26
|
+
exports.eulerV2Helpers = exports.llamaLendHelpers = exports.morphoBlueHelpers = exports.chickenBondsHelpers = exports.makerHelpers = exports.curveUsdHelpers = exports.sparkHelpers = exports.compoundHelpers = exports.aaveHelpers = void 0;
|
|
27
27
|
exports.aaveHelpers = __importStar(require("./aaveHelpers"));
|
|
28
28
|
exports.compoundHelpers = __importStar(require("./compoundHelpers"));
|
|
29
29
|
exports.sparkHelpers = __importStar(require("./sparkHelpers"));
|
|
@@ -32,3 +32,4 @@ exports.makerHelpers = __importStar(require("./makerHelpers"));
|
|
|
32
32
|
exports.chickenBondsHelpers = __importStar(require("./chickenBondsHelpers"));
|
|
33
33
|
exports.morphoBlueHelpers = __importStar(require("./morphoBlueHelpers"));
|
|
34
34
|
exports.llamaLendHelpers = __importStar(require("./llamaLendHelpers"));
|
|
35
|
+
exports.eulerV2Helpers = __importStar(require("./eulerHelpers"));
|
package/cjs/index.d.ts
CHANGED
|
@@ -18,5 +18,6 @@ import * as chickenBonds from './chickenBonds';
|
|
|
18
18
|
import * as exchange from './exchange';
|
|
19
19
|
import * as morphoBlue from './morphoBlue';
|
|
20
20
|
import * as llamaLend from './llamaLend';
|
|
21
|
+
import * as eulerV2 from './eulerV2';
|
|
21
22
|
export * from './types';
|
|
22
|
-
export { aaveV2, aaveV3, morphoAaveV2, morphoAaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, maker, chickenBonds, exchange, staking, multicall, moneymarket, markets, helpers, morphoBlue, llamaLend, };
|
|
23
|
+
export { aaveV2, aaveV3, morphoAaveV2, morphoAaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, maker, chickenBonds, exchange, staking, multicall, moneymarket, markets, helpers, morphoBlue, llamaLend, eulerV2, };
|
package/cjs/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
26
26
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.llamaLend = exports.morphoBlue = exports.helpers = exports.markets = exports.moneymarket = exports.multicall = exports.staking = exports.exchange = exports.chickenBonds = exports.maker = exports.liquity = exports.curveUsd = exports.spark = exports.compoundV3 = exports.compoundV2 = exports.morphoAaveV3 = exports.morphoAaveV2 = exports.aaveV3 = exports.aaveV2 = void 0;
|
|
29
|
+
exports.eulerV2 = exports.llamaLend = exports.morphoBlue = exports.helpers = exports.markets = exports.moneymarket = exports.multicall = exports.staking = exports.exchange = exports.chickenBonds = exports.maker = exports.liquity = exports.curveUsd = exports.spark = exports.compoundV3 = exports.compoundV2 = exports.morphoAaveV3 = exports.morphoAaveV2 = exports.aaveV3 = exports.aaveV2 = void 0;
|
|
30
30
|
require("./setup");
|
|
31
31
|
const aaveV3 = __importStar(require("./aaveV3"));
|
|
32
32
|
exports.aaveV3 = aaveV3;
|
|
@@ -66,4 +66,6 @@ const morphoBlue = __importStar(require("./morphoBlue"));
|
|
|
66
66
|
exports.morphoBlue = morphoBlue;
|
|
67
67
|
const llamaLend = __importStar(require("./llamaLend"));
|
|
68
68
|
exports.llamaLend = llamaLend;
|
|
69
|
+
const eulerV2 = __importStar(require("./eulerV2"));
|
|
70
|
+
exports.eulerV2 = eulerV2;
|
|
69
71
|
__exportStar(require("./types"), exports);
|
|
@@ -7,7 +7,7 @@ exports.compoundV2CollateralAssets = [
|
|
|
7
7
|
'cETH', 'cDAI', 'cBAT', 'cZRX', 'cUSDC', 'cWBTC Legacy', 'cWBTC', 'cUSDT',
|
|
8
8
|
'cTUSD', 'cLINK', 'cUSDP', 'cUNI', 'cCOMP', 'cMKR', 'cSUSHI', 'cAAVE', 'cYFI',
|
|
9
9
|
].map((symbol) => (0, tokens_1.getAssetInfo)(symbol));
|
|
10
|
-
exports.v3USDCCollAssetsEth = ['COMP', 'WBTC', 'ETH', 'UNI', 'LINK', 'wstETH', 'cbBTC', '
|
|
10
|
+
exports.v3USDCCollAssetsEth = ['COMP', 'WBTC', 'ETH', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'rswETH'];
|
|
11
11
|
exports.v3USDCCollAssetsArb = ['ARB', 'ETH', 'GMX', 'WBTC', 'wstETH', 'ezETH'];
|
|
12
12
|
exports.v3USDCCollAssetsBase = ['ETH', 'cbETH', 'wstETH', 'cbBTC'];
|
|
13
13
|
exports.v3USDCCollAssetsOpt = ['ETH', 'OP', 'WBTC', 'wstETH'];
|
|
@@ -26,7 +26,7 @@ exports.v3USDCeCollAssets = {
|
|
|
26
26
|
[common_1.NetworkNumber.Arb]: exports.v3USDCeCollAssetsArb,
|
|
27
27
|
[common_1.NetworkNumber.Base]: [],
|
|
28
28
|
};
|
|
29
|
-
exports.v3ETHCollAssetsEth = ['cbETH', 'wstETH', 'rETH', 'rsETH', 'weETH', 'osETH', 'WBTC', 'ezETH', 'cbBTC', 'rswETH'
|
|
29
|
+
exports.v3ETHCollAssetsEth = ['cbETH', 'wstETH', 'rETH', 'rsETH', 'weETH', 'osETH', 'WBTC', 'ezETH', 'cbBTC', 'rswETH'];
|
|
30
30
|
exports.v3ETHCollAssetsBase = ['cbETH', 'ezETH', 'wstETH', 'USDC', 'weETH', 'wrsETH', 'cbBTC'];
|
|
31
31
|
exports.v3ETHCollAssetsArb = ['weETH', 'rETH', 'wstETH', 'WBTC', 'rsETH', 'ezETH', 'USDC', 'USDT'];
|
|
32
32
|
exports.v3ETHCollAssetsOpt = ['rETH', 'wstETH', 'WBTC', 'ezETH', 'USDC', 'USDT', 'weETH', 'wrsETH'];
|
|
@@ -45,7 +45,7 @@ exports.v3USDbCCollAssets = {
|
|
|
45
45
|
[common_1.NetworkNumber.Arb]: [],
|
|
46
46
|
[common_1.NetworkNumber.Base]: exports.v3USDbCCollAssetsBase,
|
|
47
47
|
};
|
|
48
|
-
exports.v3USDTCollAssetsEth = ['
|
|
48
|
+
exports.v3USDTCollAssetsEth = ['ETH', 'WBTC', 'wstETH', 'COMP', 'UNI', 'LINK', 'cbBTC'];
|
|
49
49
|
exports.v3USDTCollAssetsArb = ['ETH', 'WBTC', 'wstETH', 'ARB', 'GMX'];
|
|
50
50
|
exports.v3USDTCollAssetsOpt = ['ETH', 'WBTC', 'OP', 'wstETH'];
|
|
51
51
|
// @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NetworkNumber } from '../../types/common';
|
|
2
|
+
import { EulerV2Market } from '../../types';
|
|
3
|
+
export declare const eUSDC2: (networkId: NetworkNumber) => EulerV2Market;
|
|
4
|
+
export declare const eUSDC8: (networkId: NetworkNumber) => EulerV2Market;
|
|
5
|
+
export declare const eWETH2: (networkId: NetworkNumber) => EulerV2Market;
|
|
6
|
+
export declare const EulerV2Markets: (networkId: NetworkNumber) => {
|
|
7
|
+
readonly "eUSDC-2": EulerV2Market;
|
|
8
|
+
readonly "eUSDC-8": EulerV2Market;
|
|
9
|
+
readonly "eWETH-2": EulerV2Market;
|
|
10
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EulerV2Markets = exports.eWETH2 = exports.eUSDC8 = exports.eUSDC2 = void 0;
|
|
4
|
+
const common_1 = require("../../types/common");
|
|
5
|
+
const types_1 = require("../../types");
|
|
6
|
+
const eUSDC2 = (networkId) => ({
|
|
7
|
+
chainIds: [common_1.NetworkNumber.Eth],
|
|
8
|
+
label: 'Euler Prime USDC',
|
|
9
|
+
shortLabel: 'eUSDC-2',
|
|
10
|
+
value: types_1.EulerV2Versions.eUSDC2,
|
|
11
|
+
asset: 'USDC',
|
|
12
|
+
secondLabel: 'Market',
|
|
13
|
+
marketAddress: '0x797DD80692c3b2dAdabCe8e30C07fDE5307D48a9',
|
|
14
|
+
});
|
|
15
|
+
exports.eUSDC2 = eUSDC2;
|
|
16
|
+
const eUSDC8 = (networkId) => ({
|
|
17
|
+
chainIds: [common_1.NetworkNumber.Eth],
|
|
18
|
+
label: 'Stablecoin Maxi USDC',
|
|
19
|
+
shortLabel: 'eUSDC-8',
|
|
20
|
+
value: types_1.EulerV2Versions.eUSDC8,
|
|
21
|
+
asset: 'USDC',
|
|
22
|
+
secondLabel: 'Market',
|
|
23
|
+
marketAddress: '0xce45EF0414dE3516cAF1BCf937bF7F2Cf67873De',
|
|
24
|
+
});
|
|
25
|
+
exports.eUSDC8 = eUSDC8;
|
|
26
|
+
const eWETH2 = (networkId) => ({
|
|
27
|
+
chainIds: [common_1.NetworkNumber.Eth],
|
|
28
|
+
label: 'Euler Prime WETH',
|
|
29
|
+
shortLabel: 'eWETH-2',
|
|
30
|
+
value: types_1.EulerV2Versions.eWETH2,
|
|
31
|
+
asset: 'WETH',
|
|
32
|
+
secondLabel: 'Market',
|
|
33
|
+
marketAddress: '0xD8b27CF359b7D15710a5BE299AF6e7Bf904984C2',
|
|
34
|
+
});
|
|
35
|
+
exports.eWETH2 = eWETH2;
|
|
36
|
+
const EulerV2Markets = (networkId) => ({
|
|
37
|
+
[types_1.EulerV2Versions.eUSDC2]: (0, exports.eUSDC2)(networkId),
|
|
38
|
+
[types_1.EulerV2Versions.eUSDC8]: (0, exports.eUSDC8)(networkId),
|
|
39
|
+
[types_1.EulerV2Versions.eWETH2]: (0, exports.eWETH2)(networkId),
|
|
40
|
+
});
|
|
41
|
+
exports.EulerV2Markets = EulerV2Markets;
|
package/cjs/markets/index.d.ts
CHANGED
package/cjs/markets/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LlamaLendMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.morphoAaveV3AssetEthMarket = exports.morphoAaveV2AssetDefaultMarket = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
|
|
3
|
+
exports.EulerV2Markets = exports.LlamaLendMarkets = exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.CrvUsdMarkets = exports.SparkMarkets = exports.v3USDTCollAssets = exports.v3USDCeCollAssets = exports.v3USDCCollAssets = exports.v3USDbCCollAssets = exports.v3ETHCollAssets = exports.compoundV2CollateralAssets = exports.CompoundMarkets = exports.getAaveV3MarketByMarketAddress = exports.morphoAaveV3AssetEthMarket = exports.morphoAaveV2AssetDefaultMarket = exports.aaveV3AssetsDefaultMarket = exports.aaveV2AssetsDefaultMarket = exports.aaveV1AssetsDefaultMarket = exports.AaveMarkets = void 0;
|
|
4
4
|
var aave_1 = require("./aave");
|
|
5
5
|
Object.defineProperty(exports, "AaveMarkets", { enumerable: true, get: function () { return aave_1.AaveMarkets; } });
|
|
6
6
|
Object.defineProperty(exports, "aaveV1AssetsDefaultMarket", { enumerable: true, get: function () { return aave_1.aaveV1AssetsDefaultMarket; } });
|
|
@@ -26,3 +26,5 @@ Object.defineProperty(exports, "MorphoBlueMarkets", { enumerable: true, get: fun
|
|
|
26
26
|
Object.defineProperty(exports, "findMorphoBlueMarket", { enumerable: true, get: function () { return morphoBlue_1.findMorphoBlueMarket; } });
|
|
27
27
|
var llamaLend_1 = require("./llamaLend");
|
|
28
28
|
Object.defineProperty(exports, "LlamaLendMarkets", { enumerable: true, get: function () { return llamaLend_1.LlamaLendMarkets; } });
|
|
29
|
+
var euler_1 = require("./euler");
|
|
30
|
+
Object.defineProperty(exports, "EulerV2Markets", { enumerable: true, get: function () { return euler_1.EulerV2Markets; } });
|
|
@@ -30,7 +30,6 @@ export declare const MORPHO_BLUE_USDE_DAI_770: (networkId?: NetworkNumber) => Mo
|
|
|
30
30
|
export declare const MORPHO_BLUE_USDE_DAI_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
31
31
|
export declare const MORPHO_BLUE_USDE_DAI_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
32
32
|
export declare const MORPHO_BLUE_USDE_DAI_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
33
|
-
export declare const MORPHO_BLUE_RETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
34
33
|
export declare const MORPHO_BLUE_CBETH_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
35
34
|
export declare const MORPHO_BLUE_WSTETH_ETH_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
36
35
|
export declare const MORPHO_BLUE_WSTETH_ETH_965_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
@@ -42,7 +41,6 @@ export declare const MORPHO_BLUE_RETH_USDC_860_BASE: (networkId?: NetworkNumber)
|
|
|
42
41
|
export declare const MORPHO_BLUE_RETH_ETH_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
43
42
|
export declare const MORPHO_BLUE_CBBTC_ETH_915_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
44
43
|
export declare const MORPHO_BLUE_CBBTC_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
45
|
-
export declare const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
|
|
46
44
|
export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
47
45
|
readonly morphobluewstethusdc: MorphoBlueMarketData;
|
|
48
46
|
readonly morphobluesdaiusdc: MorphoBlueMarketData;
|
|
@@ -63,7 +61,6 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
|
63
61
|
readonly morphobluetbtcusdc: MorphoBlueMarketData;
|
|
64
62
|
readonly morphobluecbbtceth: MorphoBlueMarketData;
|
|
65
63
|
readonly morphobluecbbtcusdc: MorphoBlueMarketData;
|
|
66
|
-
readonly morphoblueretheth_945: MorphoBlueMarketData;
|
|
67
64
|
readonly morphobluewstetheth_945: MorphoBlueMarketData;
|
|
68
65
|
readonly morphobluewstetheth_945_exchange_rate: MorphoBlueMarketData;
|
|
69
66
|
readonly morphobluewstetheth_965_exchange_rate: MorphoBlueMarketData;
|
|
@@ -82,7 +79,6 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
|
|
|
82
79
|
readonly morphoblueretheth_945_base: MorphoBlueMarketData;
|
|
83
80
|
readonly morphobluecbbtceth_915_base: MorphoBlueMarketData;
|
|
84
81
|
readonly morphobluecbbtcusdc_860_base: MorphoBlueMarketData;
|
|
85
|
-
readonly morphobluewsuperoethbweth_915_base: MorphoBlueMarketData;
|
|
86
82
|
readonly morphobluecbetheth_945_base: MorphoBlueMarketData;
|
|
87
83
|
readonly morphobluecbetheth_965_base: MorphoBlueMarketData;
|
|
88
84
|
readonly morphobluewstetheth_945_base: MorphoBlueMarketData;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = exports.
|
|
3
|
+
exports.findMorphoBlueMarket = exports.MorphoBlueMarkets = 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_ETH_965_BASE = exports.MORPHO_BLUE_WSTETH_ETH_945_BASE = exports.MORPHO_BLUE_CBETH_USDC_860_BASE = exports.MORPHO_BLUE_USDE_DAI_945 = exports.MORPHO_BLUE_USDE_DAI_915 = exports.MORPHO_BLUE_USDE_DAI_860 = exports.MORPHO_BLUE_USDE_DAI_770 = exports.MORPHO_BLUE_SUSDE_DAI_945 = exports.MORPHO_BLUE_SUSDE_DAI_915 = exports.MORPHO_BLUE_SUSDE_DAI_860 = exports.MORPHO_BLUE_SUSDE_DAI_770 = 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_CBBTC_USDC_860 = exports.MORPHO_BLUE_CBBTC_ETH_915 = exports.MORPHO_BLUE_TBTC_USDC = exports.MORPHO_BLUE_MKR_USDC = exports.MORPHO_BLUE_EZETH_ETH = exports.MORPHO_BLUE_SDAI_ETH = exports.MORPHO_BLUE_SUSDE_USDT = exports.MORPHO_BLUE_USDE_USDT = exports.MORPHO_BLUE_WEETH_ETH = 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
4
|
const utils_1 = require("../../services/utils");
|
|
5
5
|
const types_1 = require("../../types");
|
|
6
6
|
const common_1 = require("../../types/common");
|
|
@@ -487,22 +487,6 @@ const MORPHO_BLUE_USDE_DAI_945 = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
|
487
487
|
protocolName: 'morpho-blue',
|
|
488
488
|
});
|
|
489
489
|
exports.MORPHO_BLUE_USDE_DAI_945 = MORPHO_BLUE_USDE_DAI_945;
|
|
490
|
-
const MORPHO_BLUE_RETH_ETH_945 = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
491
|
-
chainIds: [1],
|
|
492
|
-
label: 'Morpho',
|
|
493
|
-
shortLabel: 'rETH/ETH',
|
|
494
|
-
value: types_1.MorphoBlueVersions.MorphoBlueREthEth_945,
|
|
495
|
-
url: 'retheth-3c83f77b',
|
|
496
|
-
loanToken: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
|
|
497
|
-
collateralToken: '0xae78736Cd615f374D3085123A210448E74Fc6393',
|
|
498
|
-
oracle: '0x1b4A3F92e5Fffd1d35A98751c9FE4472483579bB',
|
|
499
|
-
oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
|
|
500
|
-
irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
|
|
501
|
-
lltv: 0.945,
|
|
502
|
-
marketId: '0x3c83f77bde9541f8d3d82533b19bbc1f97eb2f1098bb991728acbfbede09cc5d',
|
|
503
|
-
protocolName: 'morpho-blue',
|
|
504
|
-
});
|
|
505
|
-
exports.MORPHO_BLUE_RETH_ETH_945 = MORPHO_BLUE_RETH_ETH_945;
|
|
506
490
|
// BASE
|
|
507
491
|
const MORPHO_BLUE_CBETH_USDC_860_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
508
492
|
chainIds: [common_1.NetworkNumber.Base],
|
|
@@ -680,22 +664,6 @@ const MORPHO_BLUE_CBBTC_USDC_860_BASE = (networkId = common_1.NetworkNumber.Eth)
|
|
|
680
664
|
protocolName: 'morpho-blue',
|
|
681
665
|
});
|
|
682
666
|
exports.MORPHO_BLUE_CBBTC_USDC_860_BASE = MORPHO_BLUE_CBBTC_USDC_860_BASE;
|
|
683
|
-
const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = (networkId = common_1.NetworkNumber.Eth) => ({
|
|
684
|
-
chainIds: [common_1.NetworkNumber.Base],
|
|
685
|
-
label: 'Morpho',
|
|
686
|
-
shortLabel: 'wsuperOETHb/WETH',
|
|
687
|
-
value: types_1.MorphoBlueVersions.MorphoBlueWsuperOETHbWETH_915_Base,
|
|
688
|
-
url: 'wsuperoethbweth-144bf18d',
|
|
689
|
-
loanToken: '0x4200000000000000000000000000000000000006',
|
|
690
|
-
collateralToken: '0x7FcD174E80f264448ebeE8c88a7C4476AAF58Ea6',
|
|
691
|
-
oracle: '0x28C964c985fe84736fAdc7Cf0bBd58B54bc7CF93',
|
|
692
|
-
oracleType: types_1.MorphoBlueOracleType.MARKET_RATE,
|
|
693
|
-
irm: '0x46415998764C29aB2a25CbeA6254146D50D22687',
|
|
694
|
-
lltv: 0.915,
|
|
695
|
-
marketId: '0x144bf18d6bf4c59602548a825034f73bf1d20177fc5f975fc69d5a5eba929b45',
|
|
696
|
-
protocolName: 'morpho-blue',
|
|
697
|
-
});
|
|
698
|
-
exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE;
|
|
699
667
|
const MorphoBlueMarkets = (networkId) => ({
|
|
700
668
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthUSDC]: (0, exports.MORPHO_BLUE_WSTETH_USDC)(networkId),
|
|
701
669
|
[types_1.MorphoBlueVersions.MorphoBlueSDAIUSDC]: (0, exports.MORPHO_BLUE_SDAI_USDC)(networkId),
|
|
@@ -716,7 +684,6 @@ const MorphoBlueMarkets = (networkId) => ({
|
|
|
716
684
|
[types_1.MorphoBlueVersions.MorphoBlueTBTCUSDC]: (0, exports.MORPHO_BLUE_TBTC_USDC)(networkId),
|
|
717
685
|
[types_1.MorphoBlueVersions.MorphoBlueCbBTCEth_915]: (0, exports.MORPHO_BLUE_CBBTC_ETH_915)(networkId),
|
|
718
686
|
[types_1.MorphoBlueVersions.MorphoBlueCbBTCUSDC_860]: (0, exports.MORPHO_BLUE_CBBTC_USDC_860)(networkId),
|
|
719
|
-
[types_1.MorphoBlueVersions.MorphoBlueREthEth_945]: (0, exports.MORPHO_BLUE_RETH_ETH_945)(networkId),
|
|
720
687
|
// wstETH/WETH
|
|
721
688
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945)(networkId),
|
|
722
689
|
[types_1.MorphoBlueVersions.MorphoBlueWstEthEth_945_Exchange_Rate]: (0, exports.MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE)(networkId),
|
|
@@ -739,8 +706,6 @@ const MorphoBlueMarkets = (networkId) => ({
|
|
|
739
706
|
[types_1.MorphoBlueVersions.MorphoBlueREthEth_945_Base]: (0, exports.MORPHO_BLUE_RETH_ETH_945_BASE)(networkId),
|
|
740
707
|
[types_1.MorphoBlueVersions.MorphoBlueCbBTCEth_915_Base]: (0, exports.MORPHO_BLUE_CBBTC_ETH_915_BASE)(networkId),
|
|
741
708
|
[types_1.MorphoBlueVersions.MorphoBlueCbBTCUSDC_860_Base]: (0, exports.MORPHO_BLUE_CBBTC_USDC_860_BASE)(networkId),
|
|
742
|
-
// wsuperOETHb/WETH Base
|
|
743
|
-
[types_1.MorphoBlueVersions.MorphoBlueWsuperOETHbWETH_915_Base]: (0, exports.MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE)(networkId),
|
|
744
709
|
// cbETH/WETH Base
|
|
745
710
|
[types_1.MorphoBlueVersions.MorphoBlueCbEthEth_945_Base]: (0, exports.MORPHO_BLUE_CBETH_ETH_945_BASE)(networkId),
|
|
746
711
|
[types_1.MorphoBlueVersions.MorphoBlueCbEthEth_965_Base]: (0, exports.MORPHO_BLUE_CBETH_ETH_965_BASE)(networkId),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sparkAssetsDefaultMarket = exports.sparkAssetsDefaultMarketEth = void 0;
|
|
4
4
|
const common_1 = require("../../types/common");
|
|
5
|
-
exports.sparkAssetsDefaultMarketEth = ['DAI', 'sDAI', 'USDC', 'ETH', 'wstETH', 'WBTC', 'GNO', 'rETH', 'USDT', 'weETH', 'cbBTC'
|
|
5
|
+
exports.sparkAssetsDefaultMarketEth = ['DAI', 'sDAI', 'USDC', 'ETH', 'wstETH', 'WBTC', 'GNO', 'rETH', 'USDT', 'weETH', 'cbBTC'];
|
|
6
6
|
// @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
|
|
7
7
|
exports.sparkAssetsDefaultMarket = {
|
|
8
8
|
[common_1.NetworkNumber.Eth]: exports.sparkAssetsDefaultMarketEth,
|
package/cjs/services/utils.d.ts
CHANGED
|
@@ -20,3 +20,5 @@ export declare const bytesToString: (hex: string) => string;
|
|
|
20
20
|
*/
|
|
21
21
|
export declare const mapRange: (input: number | string, minInput: number | string, maxInput: number | string, minOutput: number | string, maxOutput: number | string) => number;
|
|
22
22
|
export declare const isEnabledOnBitmap: (bitmap: number, assetId: number) => bigint;
|
|
23
|
+
export declare const MAXUINT: string;
|
|
24
|
+
export declare const isMaxuint: (amount: string) => boolean;
|
package/cjs/services/utils.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isEnabledOnBitmap = exports.mapRange = exports.bytesToString = exports.ethToWethByAddress = exports.wethToEthByAddress = exports.handleWbtcLegacy = exports.getEthAmountForDecimals = exports.getWeiAmountForDecimals = exports.compareAddresses = exports.isAddress = exports.ADDRESS_REGEX = exports.getAbiItem = exports.wstEthToStEth = exports.stEthToWstEth = exports.wethToEth = exports.ethToWeth = exports.addToObjectIf = exports.isLayer2Network = void 0;
|
|
6
|
+
exports.isMaxuint = exports.MAXUINT = exports.isEnabledOnBitmap = exports.mapRange = exports.bytesToString = exports.ethToWethByAddress = exports.wethToEthByAddress = exports.handleWbtcLegacy = exports.getEthAmountForDecimals = exports.getWeiAmountForDecimals = exports.compareAddresses = exports.isAddress = exports.ADDRESS_REGEX = exports.getAbiItem = exports.wstEthToStEth = exports.stEthToWstEth = exports.wethToEth = exports.ethToWeth = exports.addToObjectIf = exports.isLayer2Network = void 0;
|
|
7
7
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
8
8
|
const tokens_1 = require("@defisaver/tokens");
|
|
9
9
|
const common_1 = require("../types/common");
|
|
@@ -56,3 +56,6 @@ exports.mapRange = mapRange;
|
|
|
56
56
|
// eslint-disable-next-line no-bitwise
|
|
57
57
|
const isEnabledOnBitmap = (bitmap, assetId) => (BigInt(bitmap) >> BigInt(assetId)) & BigInt(1);
|
|
58
58
|
exports.isEnabledOnBitmap = isEnabledOnBitmap;
|
|
59
|
+
exports.MAXUINT = '115792089237316195423570985008687907853269984665640564039457584007913129639935';
|
|
60
|
+
const isMaxuint = (amount) => (0, exports.compareAddresses)(exports.MAXUINT, amount);
|
|
61
|
+
exports.isMaxuint = isMaxuint;
|
package/cjs/staking/staking.js
CHANGED
|
@@ -86,32 +86,13 @@ const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, void 0, vo
|
|
|
86
86
|
.toString();
|
|
87
87
|
});
|
|
88
88
|
exports.getDsrApy = getDsrApy;
|
|
89
|
-
const getSuperOETHApy = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
-
console.log('getSuperOETHApy');
|
|
91
|
-
const res = yield fetch('https://origin.squids.live/origin-squid/graphql', {
|
|
92
|
-
method: 'POST',
|
|
93
|
-
headers: {
|
|
94
|
-
'Content-Type': 'application/json',
|
|
95
|
-
},
|
|
96
|
-
body: JSON.stringify({
|
|
97
|
-
query: '\n query OTokenApy($chainId: Int!, $token: String!) {\n oTokenApies(\n limit: 1\n orderBy: timestamp_DESC\n where: {chainId_eq: $chainId, otoken_containsInsensitive: $token}\n ) {\n apy7DayAvg\n apy14DayAvg\n apy30DayAvg\n apr\n apy\n }\n}\n ',
|
|
98
|
-
variables: {
|
|
99
|
-
token: '0xdbfefd2e8460a6ee4955a68582f85708baea60a3',
|
|
100
|
-
chainId: 8453,
|
|
101
|
-
},
|
|
102
|
-
}),
|
|
103
|
-
});
|
|
104
|
-
const data = yield res.json();
|
|
105
|
-
return new decimal_js_1.default(data.data.oTokenApies[0].apy).mul(100).toString();
|
|
106
|
-
});
|
|
107
89
|
const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function* () {
|
|
108
90
|
const res = yield fetch(`https://app.defisaver.com/api/staking/apy?asset=${asset}`);
|
|
109
91
|
const data = yield res.json();
|
|
110
92
|
return data.apy;
|
|
111
93
|
});
|
|
112
|
-
exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH'
|
|
94
|
+
exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH'];
|
|
113
95
|
const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
|
|
114
|
-
console.log('getStakingApy', asset, blockNumber, fromBlock);
|
|
115
96
|
try {
|
|
116
97
|
if (asset === 'stETH' || asset === 'wstETH')
|
|
117
98
|
return (0, exports.getStETHApr)(web3, fromBlock, blockNumber);
|
|
@@ -135,8 +116,6 @@ const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefine
|
|
|
135
116
|
return getApyFromDfsApi('rsETH');
|
|
136
117
|
if (asset === 'pufETH')
|
|
137
118
|
return getApyFromDfsApi('pufETH');
|
|
138
|
-
if (asset === 'wsuperOETHb')
|
|
139
|
-
return getSuperOETHApy();
|
|
140
119
|
}
|
|
141
120
|
catch (e) {
|
|
142
121
|
console.error(`Failed to fetch APY for ${asset}`);
|