Skip to main content
PulseScanner.io

Address

0x3e249851f11cff8a0ffd982d09bc409eeaeecfdf
Current Holdings
$0.00
TXs sent
not counted
First Active
2026-07-05
block 26,957,276
Last Active
58 days ago
block 27,072,521
Funded By
not identified

Net worth historyi

No net-worth snapshots recorded yet
exact matchPlainERC20Tokensolc 0.8.31+commit.fd3a2265runtime exact · creation exact
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";

import {Helpers} from "./interfaces/TokenTypes.sol";

/// @notice Fixed-supply non-tax launch token used by the Cabal/Pump curve.
/// @dev Keeps the small factory-facing surface that TokenFactoryTax already
///      expects, but does not include tax, trading-gate, or swap logic.
contract PlainERC20Token is ERC20, Ownable {
    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;

    uint256 public immutable initialSupply;

    constructor(
        string memory name_,
        string memory symbol_,
        address owner_,
        address mintTo_,
        uint256 initialSupply_
    ) ERC20(name_, symbol_) Ownable(owner_) {
        require(owner_ != address(0), "Invalid owner");
        require(mintTo_ != address(0), "Invalid mint to");

        initialSupply = initialSupply_;

        _mint(mintTo_, initialSupply_);
    }

    function getTaxes() external pure returns (Helpers.Tax[] memory taxes) {
        taxes = new Helpers.Tax[](0);
    }

    function _update(address from, address to, uint256 value) internal override {
        if (to == DEAD && from != address(0)) {
            super._update(from, address(0), value);
            return;
        }
        super._update(from, to, value);
    }
}