@fractional-company/common
Version:
Tessera constants
72 lines (71 loc) • 3.24 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDexMappedForChain = exports.resolveDex = exports.getDexFactoryABI = exports.getDexFactoryAddress = exports.DEXES = exports.CONTRACT_TYPE_AMM_POOL_FACTORY = exports.SUSHISWAP_V1 = exports.UNISWAP_V2 = exports.UNISWAP_V3 = void 0;
const sushiswap_json_1 = __importDefault(require("./abis/dexes/sushiswap.json"));
const uniswapV2Factory_json_1 = __importDefault(require("./abis/dexes/uniswapV2Factory.json"));
const uniswapV3Factory_json_1 = __importDefault(require("./abis/dexes/uniswapV3Factory.json"));
const uniswapV3Pool_json_1 = __importDefault(require("./abis/dexes/uniswapV3Pool.json"));
const uniswapV2Pool_json_1 = __importDefault(require("./abis/dexes/uniswapV2Pool.json"));
const chains_1 = require("./chains");
const v1_1 = require("../v1");
exports.UNISWAP_V3 = "UNISWAP_V3";
exports.UNISWAP_V2 = "UNISWAP_V2";
exports.SUSHISWAP_V1 = "SUSHISWAP_V1";
exports.CONTRACT_TYPE_AMM_POOL_FACTORY = "AMM_POOL_FACTORY";
exports.DEXES = {
[exports.UNISWAP_V2]: {
FACTORY_ADDRESS: {
[chains_1.CHAINS.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',
},
FACTORY_ABI: uniswapV2Factory_json_1.default,
POOL_ABI: uniswapV2Pool_json_1.default
},
[exports.UNISWAP_V3]: {
FACTORY_ADDRESS: {
[chains_1.CHAINS.MAINNET]: '0x1F98431c8aD98523631AE4a59f267346ea31F984',
},
FACTORY_ABI: uniswapV3Factory_json_1.default,
POOL_ABI: uniswapV3Pool_json_1.default
},
[exports.SUSHISWAP_V1]: {
FACTORY_ADDRESS: {
[chains_1.CHAINS.MAINNET]: '0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac',
},
FACTORY_ABI: sushiswap_json_1.default,
POOL_ABI: uniswapV2Pool_json_1.default
}
};
function getDexFactoryAddress(dex, chainId = chains_1.CHAINS.MAINNET) {
// @ts-ignore
// eslint-disable-next-line prettier/prettier
return exports.DEXES[dex]?.FACTORY_ADDRESS[chainId];
}
exports.getDexFactoryAddress = getDexFactoryAddress;
function getDexFactoryABI(dex) {
// @ts-ignore
return exports.DEXES[dex]?.FACTORY_ABI;
}
exports.getDexFactoryABI = getDexFactoryABI;
function resolveDex(address, chainId = chains_1.CHAINS.MAINNET) {
const dex = Object.keys(exports.DEXES)
// @ts-ignore
.filter(key => exports.DEXES[key].FACTORY_ADDRESS[chainId]?.toLowerCase() === address.toLowerCase());
return dex.length > 0 ? dex[0] : null;
}
exports.resolveDex = resolveDex;
function getDexMappedForChain(chainId = chains_1.CHAINS.MAINNET) {
return Object.keys(exports.DEXES)
.map(key => {
return {
// @ts-ignore
contractAddress: exports.DEXES[key].FACTORY_ADDRESS[chainId]?.toLowerCase(),
contractType: exports.CONTRACT_TYPE_AMM_POOL_FACTORY,
chainId,
blockNumber: v1_1.START_BLOCK_NUMBERS[chainId]
};
}).filter(dex => dex.contractAddress);
}
exports.getDexMappedForChain = getDexMappedForChain;