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/MeicoTokenSale.sol": {
"content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.19;\r
\r
interface IERC20 {\r
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\r
function balanceOf(address account) external view returns (uint256);\r
}\r
\r
interface IToken {\r
function transfer(address to, uint256 amount) external returns (bool);\r
}\r
\r
contract MeicoTokenSale {\r
\r
\r
address public constant USDT = 0xaA8E23Fb1079EA71e0a56F48a2aA51851D8433D0;\r
address public constant USDC = 0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238;\r
\r
\r
address public owner;\r
uint256 public constant TOKEN_PRICE = 0.000012 ether; // price per token in ETH-equivalent\r
uint256 public constant MAX_SUPPLY = 6_000_000_000 * 10**18;\r
uint256 public totalSold;\r
\r
address public constant RECEIVING_WALLET = 0xe5c9eB0Efa66A8c86De705E1ac94c45752aA87eE;\r
\r
mapping(address => uint256) public purchases;\r
mapping(address => string) public referralCodes;\r
\r
IToken public tokenContract;\r
\r
// -----------------------\r
// Events\r
// -----------------------\r
event TokensPurchased(\r
address indexed buyer,\r
uint256 tokenAmount, \r
string referralCode,\r
string paymentToken, // ETH, USDT, USDC\r
uint256 value_paid // amount paid in ETH/USDT/USDC\r
);\r
\r
event ReferralCodeCreated(address indexed user, string code);\r
\r
// -----------------------\r
// Modifiers\r
// -----------------------\r
modifier onlyOwner() {\r
require(msg.sender == owner, "Not owner");\r
_;\r
}\r
\r
// -----------------------\r
// Constructor\r
// -----------------------\r
constructor(address _token) {\r
owner = msg.sender;\r
tokenContract = IToken(_token);\r
}\r
\r
// -----------------------\r
// Buy with ETH\r
// -----------------------\r
function buyTokensWithETH(string memory referralCode) public payable {\r
require(totalSold < MAX_SUPPLY, "All tokens sold");\r
\r
uint256 tokenAmount = (msg.value * 10**18) / TOKEN_PRICE;\r
require(tokenAmount > 0, "Insufficient payment");\r
\r
totalSold += tokenAmount;\r
purchases[msg.sender] += tokenAmount;\r
\r
(bool sent, ) = RECEIVING_WALLET.call{value: msg.value}("");\r
require(sent, "Failed to send Ether");\r
\r
emit TokensPurchased(msg.sender, tokenAmount, referralCode, "ETH", msg.value);\r
}\r
\r
// -----------------------\r
// Buy with USDT\r
// -----------------------\r
function buyTokensWithUSDT(uint256 usdtAmount, string memory referralCode) public {\r
require(totalSold < MAX_SUPPLY, "All tokens sold");\r
IERC20 usdt = IERC20(USDT);\r
require(usdt.transferFrom(msg.sender, RECEIVING_WALLET, usdtAmount), "USDT transfer failed");\r
\r
uint256 tokenAmount = (usdtAmount * 10**6) / TOKEN_PRICE;\r
totalSold += tokenAmount;\r
purchases[msg.sender] += tokenAmount;\r
\r
emit TokensPurchased(msg.sender, tokenAmount, referralCode, "USDT", usdtAmount);\r
}\r
\r
// -----------------------\r
// Buy with USDC\r
// -----------------------\r
function buyTokensWithUSDC(uint256 usdcAmount, string memory referralCode) public {\r
require(totalSold < MAX_SUPPLY, "All tokens sold");\r
IERC20 usdc = IERC20(USDC);\r
require(usdc.transferFrom(msg.sender, RECEIVING_WALLET, usdcAmount), "USDC transfer failed");\r
\r
uint256 tokenAmount = (usdcAmount * 10**6) / TOKEN_PRICE;\r
totalSold += tokenAmount;\r
purchases[msg.sender] += tokenAmount;\r
\r
emit TokensPurchased(msg.sender, tokenAmount, referralCode, "USDC", usdcAmount);\r
}\r
\r
// -----------------------\r
// View purchase\r
// -----------------------\r
function getPurchaseAmount(address buyer) public view returns (uint256) {\r
return purchases[buyer];\r
}\r
\r
// -----------------------\r
// Receive ETH fallback\r
// -----------------------\r
receive() external payable {}\r
}\r
"
}
},
"settings": {
"evmVersion": "paris",
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}
}}
Submitted on: 2025-10-29 13:24:18
Comments
Log in to comment.
No comments yet.