@admin-jigsaw/jigsaw-sdk
Version:
Returns predefined data for Jigsaw platform and exposes functionality to retrieve the necessary data
180 lines (179 loc) • 6.68 kB
JavaScript
var _a, _b, _c, _d, _e, _f, _g;
// KEEP THESE DICTIONARIES CONNECTED TO EACH OTHER
import { COLLATERALS } from "./coinsConstants";
import { zeroAddress } from "viem";
export var PROTOCOLS_DATA = {
AAVE: {
name: "AAVE",
icon: "/assets/protocols/aave.svg",
},
NUCLEUS: {
name: "NUCLEUS",
icon: "/assets/protocols/nucleus.svg",
},
RESERVOIR: {
name: "RESERVOIR",
icon: "/assets/protocols/reservoir.svg",
},
DINERO: {
name: "DINERO",
icon: "/assets/protocols/dinero.svg",
},
PENDLE: {
name: "PENDLE",
icon: "/assets/protocols/pendle.svg",
},
};
// One strategy per collateral
export var AAVE_STRATEGIES = (_a = {},
_a[COLLATERALS.WETH.symbol] = {
stratAddress: "0xaE7b7A1c6C4d859e19301ccAc2C6eD28A4C51288",
},
_a[COLLATERALS.wstETH.symbol] = {
stratAddress: "0xbF97DEfeb6a387215E3e67DFb988c675c9bb1a29",
},
_a[COLLATERALS.weETH.symbol] = {
stratAddress: "0xA7240bcff60Eef40F31B8eD5d921BaD6DB13B199",
},
_a[COLLATERALS.WBTC.symbol] = {
stratAddress: "0x7722f5d7964a04672761cdfdC7c17B7Ac8f197b7",
},
_a[COLLATERALS.USDT.symbol] = {
stratAddress: "0xe9CD84fe4ddfB0f016e3264791923902906753Bd",
},
_a[COLLATERALS.USDC.symbol] = {
stratAddress: "0x039d7496e432c6Aea4c24648a59318b3cbe09942",
},
_a[COLLATERALS.DAI.symbol] = {
stratAddress: "0xeA2e668d430e5AA15babA2f5c5edfd4F9Ef6EB73",
},
_a[COLLATERALS.sUSDe.symbol] = {
stratAddress: "0x240A60DC5e0B9013Cb8CF39aa6f9dDd8f25E40D2",
},
_a);
// One strategy per NUCLEUS pool
export var NUCLEUS_STRATEGIES = (_b = {},
_b[COLLATERALS.wstETH.symbol] = (_c = {},
_c[COLLATERALS.weETH.symbol] = {
stratAddress: "0x512a0E8bAeb6Ac3D52A11780c92517627005b0b1",
pairSymbol: COLLATERALS.weETH.symbol,
},
_c[COLLATERALS.rswETH.symbol] = {
stratAddress: "0x5aA185fbEFc205072FaecC6B9D564383e761f8C2",
pairSymbol: COLLATERALS.rswETH.symbol,
},
// rsETH is not in out collaterals list
_c.rsETH = {
stratAddress: "0x63275D081C4A77AE69f76c4952F9747a5559a519",
pairSymbol: "rsETH",
},
_c),
_b[COLLATERALS.WETH.symbol] = (_d = {},
_d[COLLATERALS.ezETH.symbol] = {
stratAddress: "0x5A61c51C6745b3F509f4a1BF54BFD04e04aF430a",
pairSymbol: COLLATERALS.ezETH.symbol,
},
_d),
_b);
export var RESERVOIR_STRATEGIES = (_e = {},
_e[COLLATERALS.USDC.symbol] = {
apy: "12",
stratAddress: "0xbaee9B65349929Bd78f9878555bF78027Df7f101",
},
_e[COLLATERALS.rUSD.symbol] = {
apy: "10",
stratAddress: zeroAddress,
},
_e);
export var DINERO_STRATEGIES = (_f = {},
_f[COLLATERALS.WETH.symbol] = {
apy: "3.78",
stratAddress: "0x886a2A3ABF5B79AA5dFF1C73016BD07CFc817e04",
},
_f);
// One strategy per collateral
export var PENDLE_STRATEGIES = (_g = {},
_g[COLLATERALS.sUSDe.symbol] = {
general: {
stratAddress: "0xfDD930c22708c7572278cf74D64f3721Eedc18Ad",
},
},
_g[COLLATERALS["USD0++"].symbol] = {
general: {
stratAddress: "0x26320DE63415e5AAf2BA617D97C39444eDb6F741",
},
},
_g[COLLATERALS.rswETH.symbol] = {
general: {
stratAddress: "0x2550d6424b46f78F4E31F1CCf88Da26dda7826C6",
},
matured: {
stratAddress: "0x2550d6424b46f78F4E31F1CCf88Da26dda7826C6",
},
},
_g[COLLATERALS.pufETH.symbol] = {
general: {
stratAddress: "0xDb731EaaFA0FFA7854A24C2379585a85D768Ed5C",
},
},
_g[COLLATERALS.LBTC.symbol] = {
general: {
stratAddress: "0x48288D0e3079A03f6EC1846554CFc58C2696Aaee",
},
},
_g);
export var generateProtocolStrategyMap = function () {
var protocolStrategyMap = {};
protocolStrategyMap[PROTOCOLS_DATA.NUCLEUS.name] = Object.values(NUCLEUS_STRATEGIES)
.flatMap(function (pool) { return Object.values(pool); })
.map(function (strategy) { return strategy.stratAddress || zeroAddress; });
protocolStrategyMap[PROTOCOLS_DATA.AAVE.name] = Object.values(AAVE_STRATEGIES).map(function (strategy) { return strategy.stratAddress || zeroAddress; });
protocolStrategyMap[PROTOCOLS_DATA.PENDLE.name] = Object.values(PENDLE_STRATEGIES)
.flatMap(function (_a) {
var general = _a.general, matured = _a.matured;
return [
matured === null || matured === void 0 ? void 0 : matured.stratAddress,
general === null || general === void 0 ? void 0 : general.stratAddress,
];
})
.filter(Boolean);
protocolStrategyMap[PROTOCOLS_DATA.RESERVOIR.name] = Object.values(RESERVOIR_STRATEGIES).map(function (strategy) { return strategy.stratAddress || zeroAddress; });
protocolStrategyMap[PROTOCOLS_DATA.DINERO.name] = Object.values(DINERO_STRATEGIES).map(function (strategy) { return strategy.stratAddress || zeroAddress; });
return protocolStrategyMap;
};
var generateProtocolAssets = function () {
var _a;
var protocolAssets = [];
var protocolSources = (_a = {},
_a[PROTOCOLS_DATA.NUCLEUS.name] = NUCLEUS_STRATEGIES,
_a[PROTOCOLS_DATA.AAVE.name] = AAVE_STRATEGIES,
_a[PROTOCOLS_DATA.PENDLE.name] = PENDLE_STRATEGIES,
_a[PROTOCOLS_DATA.RESERVOIR.name] = RESERVOIR_STRATEGIES,
_a[PROTOCOLS_DATA.DINERO.name] = DINERO_STRATEGIES,
_a);
Object.entries(protocolSources).forEach(function (_a) {
var _b;
var protocol = _a[0], strategies = _a[1];
var assets = new Set();
Object.keys(strategies).forEach(function (asset) {
assets.add(asset);
});
protocolAssets.push({
name: protocol,
icon: ((_b = PROTOCOLS_DATA[protocol]) === null || _b === void 0 ? void 0 : _b.icon) || "",
assets: Array.from(assets),
});
});
return protocolAssets;
};
// Assets for each protocol, keep in sync with strategies dictionaries
export var PROTOCOLS_ASSETS = generateProtocolAssets();
// Strategies for each protocol in a flat array, keep in sync with PROTOCOLS_ASSETS
export var PROTOCOL_STRATEGY_MAP = generateProtocolStrategyMap();
export var PENDLE_MARKETS = [
"0x70B70Ac0445C3eF04E314DFdA6caafd825428221",
"0x048680F64d6DFf1748ba6D9a01F578433787e24B",
"0xfd5Cf95E8b886aCE955057cA4DC69466e793FBBE",
"0x58612beB0e8a126735b19BB222cbC7fC2C162D2a",
"0xB162B764044697cf03617C2EFbcB1f42e31E4766",
];