MeicoTokenSale

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"
        ]
      }
    }
  }
}}

Tags:
Factory|addr:0xbc1c74ad6aff51576ea03007319b081db99d2ece|verified:true|block:23681973|tx:0x054a71905f9e3516da4dd7f40281cc93003338353318271cfb7772b0ffd17294|first_check:1761737313

Submitted on: 2025-10-29 12:28:33

Comments

Log in to comment.

No comments yet.