@admin-jigsaw/jigsaw-sdk
Version:
Returns predefined data for Jigsaw platform and exposes functionality to retrieve the necessary data
132 lines (131 loc) • 7.31 kB
JavaScript
import { zeroAddress } from "viem";
import { COLLATERALS_GROUPS_SONIC, COLLATERALS_GROUPS_WITH_REWARDS_SONIC, COLLATERALS_SONIC, REWARD_TOKENS_SONIC, SYMBOLS_ALL_SONIC, SYMBOLS_BASE_SONIC, SYMBOLS_BORROW_SONIC, SYMBOLS_DEPOSIT_SONIC, SYMBOLS_WITHDRAW_SONIC, } from "./sonic/coinsConstants";
import { AAVE_STRATEGIES_SONIC, PROTOCOL_STRATEGY_MAP_SONIC, PROTOCOLS_ASSETS_SONIC, } from "./sonic/strategiesConstants";
import { COLLATERALS_GROUPS_SWELL, COLLATERALS_SWELL, SYMBOLS_ALL_SWELL, SYMBOLS_BASE_SWELL, SYMBOLS_BORROW_SWELL, SYMBOLS_DEPOSIT_SWELL, SYMBOLS_WITHDRAW_SWELL, } from "./swell/coinsConstants";
import { COLLATERALS_ETHEREUM, COLLATERALS_GROUPS_ETHEREUM, COLLATERALS_GROUPS_WITH_REWARDS_ETHEREUM, REWARD_TOKENS_ETHEREUM, SYMBOLS_ALL_ETHEREUM, SYMBOLS_BASE_ETHEREUM, SYMBOLS_BORROW_ETHEREUM, SYMBOLS_DEPOSIT_ETHEREUM, SYMBOLS_WITHDRAW_ETHEREUM, } from "./ethereum/coinsConstants";
import { AAVE_STRATEGIES_ETHEREUM, DINERO_STRATEGIES_ETHEREUM, PENDLE_MARKETS_ETHEREUM, PENDLE_STRATEGIES_ETHEREUM, PROTOCOL_STRATEGY_MAP_ETHEREUM, PROTOCOLS_ASSETS_ETHEREUM, RESERVOIR_STRATEGIES_ETHEREUM, } from "./ethereum/strategiesConstants";
import { mainnet, sonic, swellchain } from "@reown/appkit/networks";
export const CHAINS = {
[mainnet.id]: {
...mainnet,
constants: {
jusdAddress: COLLATERALS_ETHEREUM.jUSD.address,
sharesDecimals: 18,
explorerUrl: process.env.NEXT_PUBLIC_ETHERSCAN_URL ||
"https://etherscan.io",
rpcUrl: process.env.NEXT_PUBLIC_MAINNET_RPC ||
"https://mainnet.infura.io",
jigsawManagerAddress: "0x0000000e44a948ab0c83f2c65d3a2c4a06b05228",
holdingManagerAddress: "0x0000000a9facf0be270c02ddfecabd01cc194698",
liquidationManagerAddress: "0x0000000bb034315bf08ce000c5f43c1af2609421",
stablesManagerAddress: "0x00000000fb1d443a8d2aaaee72ce4c55b8db04b7",
strategyManagerAddress: "0x0000000b6bccbd238329a55f83582efd3b5d2ed2",
swapManagerAddress: "0x0000000d64a5f3b2dd2f7d617431f9a8c7577a26",
},
tokens: {
collaterals: COLLATERALS_ETHEREUM,
rewardTokens: REWARD_TOKENS_ETHEREUM,
allSymbols: SYMBOLS_ALL_ETHEREUM,
borrowSymbols: SYMBOLS_BORROW_ETHEREUM,
depositSymbols: SYMBOLS_DEPOSIT_ETHEREUM,
withdrawSymbols: SYMBOLS_WITHDRAW_ETHEREUM,
baseSymbols: SYMBOLS_BASE_ETHEREUM,
collateralGroups: COLLATERALS_GROUPS_ETHEREUM,
collateralGroupsWithRewards: COLLATERALS_GROUPS_WITH_REWARDS_ETHEREUM,
nativeCoin: COLLATERALS_ETHEREUM.ETH.symbol,
wrappedNativeCoin: COLLATERALS_ETHEREUM.WETH.symbol,
},
strategies: {
aave: {
aaveStrategies: AAVE_STRATEGIES_ETHEREUM,
uiPoolDataProviderAddress: "0x3F78BBD206e4D3c504Eb854232EdA7e47E9Fd8FC",
uiIncentiveDataProviderAddress: "0xe3dFf4052F0bF6134ACb73bEaE8fe2317d71F047",
lendingPoolAddressProvider: "0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e",
},
reservoir: RESERVOIR_STRATEGIES_ETHEREUM,
dinero: DINERO_STRATEGIES_ETHEREUM,
pendle: {
strategies: PENDLE_STRATEGIES_ETHEREUM,
markets: PENDLE_MARKETS_ETHEREUM,
},
},
protocolsAssets: PROTOCOLS_ASSETS_ETHEREUM,
protocolStrategyMap: PROTOCOL_STRATEGY_MAP_ETHEREUM,
},
[sonic.id]: {
...sonic,
constants: {
jusdAddress: COLLATERALS_SONIC.jUSD.address,
sharesDecimals: 18,
explorerUrl: process.env.NEXT_PUBLIC_SONIC_ETHERSCAN_URL ||
"https://sonicscan.org",
rpcUrl: process.env.NEXT_PUBLIC_SONIC_RPC ||
"https://rpc.soniclabs.com",
jigsawManagerAddress: "0x0000000146fa98d5435512635a69bdcd3047d1e9",
holdingManagerAddress: "0x00000005e325d84f42aab946eee3b70fe4198d99",
liquidationManagerAddress: "0x0000000a866d52c5d3a3f78ca2321c107488ae53",
stablesManagerAddress: "0x0000000b11ce20726bc5c7a462a86fac904bc250",
strategyManagerAddress: "0x0000000bb6fa7c85ea23406fd407352ae627d69a",
swapManagerAddress: zeroAddress,
},
tokens: {
collaterals: COLLATERALS_SONIC,
allSymbols: SYMBOLS_ALL_SONIC,
rewardTokens: REWARD_TOKENS_SONIC,
borrowSymbols: SYMBOLS_BORROW_SONIC,
depositSymbols: SYMBOLS_DEPOSIT_SONIC,
withdrawSymbols: SYMBOLS_WITHDRAW_SONIC,
baseSymbols: SYMBOLS_BASE_SONIC,
collateralGroups: COLLATERALS_GROUPS_SONIC,
collateralGroupsWithRewards: COLLATERALS_GROUPS_WITH_REWARDS_SONIC,
nativeCoin: COLLATERALS_SONIC.S.symbol,
wrappedNativeCoin: COLLATERALS_SONIC.wS.symbol,
},
strategies: {
aave: {
aaveStrategies: AAVE_STRATEGIES_SONIC,
uiPoolDataProviderAddress: "0x9005A69fE088680827f292e8aE885Be4BE1beb2f",
uiIncentiveDataProviderAddress: "0xeC859AED64e87004FA724892D5aB474901825B2D",
lendingPoolAddressProvider: "0x5C2e738F6E27bCE0F7558051Bf90605dD6176900",
},
},
protocolsAssets: PROTOCOLS_ASSETS_SONIC,
protocolStrategyMap: PROTOCOL_STRATEGY_MAP_SONIC,
},
[swellchain.id]: {
...swellchain,
constants: {
jusdAddress: COLLATERALS_SONIC.jUSD.address,
sharesDecimals: 18,
explorerUrl: process.env.NEXT_PUBLIC_SWELL_ETHERSCAN_URL ||
"https://swellscan.com",
rpcUrl: process.env.NEXT_PUBLIC_SWELL_RPC ||
"https://rpc.ankr.com/swell",
jigsawManagerAddress: "0x304d645eb54720841dcd2cdffba4eeddb6a76cfe",
holdingManagerAddress: "0x41feb582d3bd132cec6a363e63fade566c8863a8",
liquidationManagerAddress: "0x2854eba41c6ef97d297f58392af764156270f4ff",
stablesManagerAddress: "0xda475cf3d75a2fecc78168b56f06a3cfbb0b5253",
strategyManagerAddress: "0xa124c1bd32db227fc8079c8b01d39c3179a9ac96",
swapManagerAddress: zeroAddress,
},
tokens: {
collaterals: COLLATERALS_SWELL,
allSymbols: SYMBOLS_ALL_SWELL,
borrowSymbols: SYMBOLS_BORROW_SWELL,
depositSymbols: SYMBOLS_DEPOSIT_SWELL,
withdrawSymbols: SYMBOLS_WITHDRAW_SWELL,
baseSymbols: SYMBOLS_BASE_SWELL,
collateralGroups: COLLATERALS_GROUPS_SWELL,
collateralGroupsWithRewards: COLLATERALS_GROUPS_SWELL, // No rewards defined for Swellchain yet
nativeCoin: COLLATERALS_SWELL.ETH.symbol,
wrappedNativeCoin: COLLATERALS_SWELL.WETH.symbol,
},
strategies: null, // No strategies defined for Swellchain yet
protocolsAssets: null, // No protocols assets defined for Swellchain yet
protocolStrategyMap: null, // No protocol strategy map defined for Swellchain yet
},
};
// Helper function to get chain config
export function getChainConfig(chainId) {
return CHAINS[chainId] || CHAINS[mainnet.id]; // Default to mainnet if chain not found
}