Description:
Smart contract deployed on Ethereum with Factory features.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
{{
"language": "Solidity",
"sources": {
"contracts/core/MegaSwapFactory.sol": {
"content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "../security/Ownable.sol";
contract MegaSwapFactory is Ownable {
address public feeTo;
address public feeToSetter;
mapping(address=>mapping(address=>address)) public getPair;
address[] public allPairs;
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
constructor(address _feeToSetter){ feeToSetter = _feeToSetter; }
function allPairsLength() external view returns (uint) { return allPairs.length; }
function setFeeTo(address _feeTo) external {
require(msg.sender == feeToSetter, 'FORBIDDEN');
feeTo = _feeTo;
}
function setFeeToSetter(address _feeToSetter) external {
require(msg.sender == feeToSetter, 'FORBIDDEN');
feeToSetter = _feeToSetter;
}
function createPair(address tokenA, address tokenB) external returns (address pair) {
require(tokenA != tokenB, 'IDENTICAL_ADDRESSES');
require(getPair[tokenA][tokenB] == address(0), 'PAIR_EXISTS');
pair = address(uint160(uint(keccak256(abi.encode(tokenA, tokenB, block.timestamp)))));
getPair[tokenA][tokenB] = pair;
getPair[tokenB][tokenA] = pair;
allPairs.push(pair);
emit PairCreated(tokenA, tokenB, pair, allPairs.length);
}
}
"
},
"contracts/security/Ownable.sol": {
"content": "// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() { owner = msg.sender; emit OwnershipTransferred(address(0), owner); }
modifier onlyOwner() { require(msg.sender == owner, "not owner"); _; }
function transferOwnership(address newOwner) external onlyOwner {
require(newOwner != address(0), "0 addr");
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 500
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}
}}
Submitted on: 2025-11-06 20:56:57
Comments
Log in to comment.
No comments yet.