Description:
Smart contract deployed on Ethereum with Factory features.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
{{
"language": "Solidity",
"sources": {
"Constants.sol": {
"content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
library Constants {
string internal constant PROTOCOL_VERSION = "1.0.0";
string internal constant PROTOCOL_NAME = "DEX Protocol";
address internal constant ZERO_ADDRESS = address(0);
uint256 internal constant MAX_UINT256 = type(uint256).max;
uint128 internal constant MAX_UINT128 = type(uint128).max;
uint256 internal constant DECIMAL_BASE = 1e18;
uint256 internal constant MINIMUM_LIQUIDITY = 1000;
uint256 internal constant MAX_POOLS = 10000;
uint256 internal constant MIN_SWAP_AMOUNT = 1000;
uint256 internal constant MAX_SWAP_AMOUNT = 1000000 * DECIMAL_BASE;
uint256 internal constant K_FACTOR = 1e12;
uint256 internal constant DEFAULT_SWAP_FEE = 3000;
uint256 internal constant DEFAULT_WITHDRAW_FEE = 1000;
uint256 internal constant TOKEN_LISTING_FEE = 1e16;
uint256 internal constant MAX_FEE_RATE = 5000;
uint256 internal constant MIN_FEE_RATE = 10;
uint256 internal constant FEE_BASE = 10000;
uint256 internal constant BASIS_POINTS = 10000;
uint256 internal constant PROTOCOL_FEE_SHARE = 2000;
uint256 internal constant LP_FEE_SHARE = 8000;
int24 internal constant MIN_TICK_SPACING = 1;
int24 internal constant MAX_TICK_SPACING = 16384;
int24 internal constant MIN_TICK = -887272;
int24 internal constant MAX_TICK = 887272;
uint256 internal constant PRICE_RATIO_BASE = 1001;
uint256 internal constant Q96 = 0x1000000000000000000000000;
uint256 internal constant Q128 = 0x100000000000000000000000000000000;
uint256 internal constant MIN_VOTING_PERIOD = 3 days;
uint256 internal constant MAX_VOTING_PERIOD = 30 days;
uint256 internal constant MIN_TIMELOCK_DELAY = 1 days;
uint256 internal constant MAX_TIMELOCK_DELAY = 30 days;
uint256 internal constant MIN_QUORUM = 500;
uint256 internal constant MAX_QUORUM = 2000;
uint256 internal constant MIN_PROPOSAL_THRESHOLD = 100;
uint256 internal constant MAX_SLIPPAGE = 1000;
uint256 internal constant MIN_SLIPPAGE = 10;
uint256 internal constant MAX_PRICE_IMPACT = 2000;
uint256 internal constant WITHDRAW_COOLDOWN = 1 hours;
uint256 internal constant MAX_TXS_PER_BLOCK = 100;
uint256 internal constant MAX_GAS_LIMIT = 15000000;
uint256 internal constant MIN_OBSERVATIONS = 2;
uint256 internal constant MAX_OBSERVATIONS = 65535;
uint256 internal constant DEFAULT_CARDINALITY = 100;
uint256 internal constant MIN_UPDATE_INTERVAL = 1;
uint256 internal constant MAX_UPDATE_INTERVAL = 3600;
uint256 internal constant MAX_PRICE_DEVIATION = 500;
uint256 internal constant MIN_TOKEN_SUPPLY = 1000000 * DECIMAL_BASE;
uint256 internal constant MAX_TOKEN_SUPPLY = 1000000000 * DECIMAL_BASE;
uint8 internal constant MAX_DECIMALS = 18;
uint8 internal constant MIN_DECIMALS = 6;
uint256 internal constant MAX_TOKEN_NAME_LENGTH = 50;
uint256 internal constant MAX_TOKEN_SYMBOL_LENGTH = 10;
uint256 internal constant REWARD_LOCK_PERIOD = 30 days;
uint256 internal constant MAX_REWARD_APR = 100000;
uint256 internal constant MIN_REWARD_APR = 100;
uint256 internal constant TEAM_VESTING_PERIOD = 365 days;
uint256 internal constant CIRCUIT_BREAKER_THRESHOLD = 5000;
uint256 internal constant CIRCUIT_BREAKER_COOLDOWN = 2 hours;
uint256 internal constant MAX_CIRCUIT_BREAKER_TRIGGERS = 3;
function percentToBasisPoints(uint256 percentage) internal pure returns (uint256) {
return percentage * 100;
}
function basisPointsToPercent(uint256 basisPoints) internal pure returns (uint256) {
return basisPoints / 100;
}
function calculateFee(uint256 amount, uint256 feeRate) internal pure returns (uint256) {
return (amount * feeRate) / FEE_BASE;
}
function isValidFeeRate(uint256 feeRate) internal pure returns (bool) {
return feeRate >= MIN_FEE_RATE && feeRate <= MAX_FEE_RATE;
}
function isValidTick(int24 tick) internal pure returns (bool) {
return tick >= MIN_TICK && tick <= MAX_TICK;
}
function isValidTickSpacing(int24 tickSpacing) internal pure returns (bool) {
return tickSpacing >= MIN_TICK_SPACING && tickSpacing <= MAX_TICK_SPACING;
}
}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}
}}
Submitted on: 2025-10-07 16:10:31
Comments
Log in to comment.
No comments yet.