// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
// TEST: identical to LunchV3Token EXCEPT there is NO _update override — no first-hour 2% max-wallet,
// no pool/initLimits gate. A dead-plain, immutable, fixed-supply ERC20. Same constructor signature +
// a no-op initLimits so the existing launcher works unchanged. Purpose: see whether removing the
// anti-snipe transfer hook makes GMGN stop flagging "honeypot / TradeRestriction".
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract LunchTokenPlain is ERC20 {
address public immutable launcher;
address public immutable creator;
constructor(
string memory name_,
string memory symbol_,
uint256 totalSupply_,
address launcher_,
address creator_
) ERC20(name_, symbol_) {
require(totalSupply_ > 0, "supply=0");
require(launcher_ != address(0), "launcher=0");
launcher = launcher_;
creator = creator_;
_mint(launcher_, totalSupply_);
}
// NO initLimits, NO _update override, NO privileged functions of any kind — a pure, immutable,
// fixed-supply ERC20 with unrestricted transfers from block 0. (launcher/creator are just public
// getters, kept for constructor-signature parity + so the auto-verify cron can read them.)
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "totalSupply_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "launcher_",
"type": "address",
"internalType": "address"
},
{
"name": "creator_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "ERC20InsufficientAllowance",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "allowance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InsufficientBalance",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InvalidApprover",
"type": "error",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSpender",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "creator",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "launcher",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
}
]0x6080806040526004361015610012575f80fd5b5f3560e01c90816302d05d3f1461051b5750806306fdde0314610449578063095ea7b3146103c757806316eebd1e1461038357806318160ddd1461036657806323b872dd14610287578063313ce5671461026c57806370a082311461023557806395d89b411461011a578063a9059cbb146100e95763dd62ed3e14610095575f80fd5b346100e55760403660031901126100e5576100ae610586565b6100b661059c565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100e55760403660031901126100e55761010f610105610586565b60243590336105b2565b602060405160018152f35b346100e5575f3660031901126100e5576040515f6004548060011c9060018116801561022b575b602083108114610217578285529081156101fb57506001146101a6575b50819003601f01601f191681019067ffffffffffffffff8211818310176101925761018e8291826040528261055c565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106101e55750602091508201018261015e565b60018160209254838588010152019101906101d0565b90506020925060ff191682840152151560051b8201018261015e565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610141565b346100e55760203660031901126100e5576001600160a01b03610256610586565b165f525f602052602060405f2054604051908152f35b346100e5575f3660031901126100e557602060405160128152f35b346100e55760603660031901126100e5576102a0610586565b6102a861059c565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f1981106102e6575b5061010f93506105b2565b83811061034b5784156103385733156103255761010f945f52600160205260405f2060018060a01b0333165f526020528360405f2091039055846102db565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b346100e5575f3660031901126100e5576020600254604051908152f35b346100e5575f3660031901126100e5576040517f000000000000000000000000f5ac14e7691ef44b15b59fcc6a756e41a3e5efd66001600160a01b03168152602090f35b346100e55760403660031901126100e5576103e0610586565b602435903315610338576001600160a01b031690811561032557335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100e5575f3660031901126100e5576040515f6003548060011c90600181168015610511575b602083108114610217578285529081156101fb57506001146104bc5750819003601f01601f191681019067ffffffffffffffff8211818310176101925761018e8291826040528261055c565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b8282106104fb5750602091508201018261015e565b60018160209254838588010152019101906104e6565b91607f1691610470565b346100e5575f3660031901126100e5577f000000000000000000000000949b874c4c0d21687f302a8301fd5a91ce204f236001600160a01b03168152602090f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100e557565b602435906001600160a01b03821682036100e557565b6001600160a01b031690811561065c576001600160a01b031691821561064957815f525f60205260405f205481811061063057817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffdfea2646970667358221220d0d82562ae169a18cc1b24ff11ac1b858ac6b2537032316878c3308477df4eb764736f6c634300081e0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x105673…dd3ba0 | 16 days agoThu, 30 Jul 2026 12:57:43 UTC | Transfer | [0] 0x000000000000…ff1ca9c5 [1] 0x000000000000…ce204f23 data: 0x000000000000000000…6f70bf04 |
| 0x105673…dd3ba0 | 16 days agoThu, 30 Jul 2026 12:57:43 UTC | Transfer | [0] 0x000000000000…ff1ca9c5 [1] 0x000000000000…0000dead data: 0x000000000000000000…76104af7 |
| 0x105673…dd3ba0 | 16 days agoThu, 30 Jul 2026 12:57:43 UTC | Approval | [0] 0x000000000000…ff1ca9c5 [1] 0x000000000000…638de0d3 data: 0x000000000000000000…00000000 |
| 0x105673…dd3ba0 | 16 days agoThu, 30 Jul 2026 12:57:43 UTC | Transfer | [0] 0x000000000000…ff1ca9c5 [1] 0x000000000000…961cd533 data: 0x000000000000000000…f95fefea |
| 0x105673…dd3ba0 | 16 days agoThu, 30 Jul 2026 12:57:43 UTC | Approval | [0] 0x000000000000…ff1ca9c5 [1] 0x000000000000…638de0d3 data: 0x000000000000000000…f96031fa |
| 0x105673…dd3ba0 | 16 days agoThu, 30 Jul 2026 12:57:43 UTC | Transfer | [0] 0x000000000000…961cd533 [1] 0x000000000000…ff1ca9c5 data: 0x000000000000000000…dee0f9e5 |
| 0x09238d…207ab2 | 19 days agoMon, 27 Jul 2026 11:16:29 UTC | Transfer | [0] 0x000000000000…45aae695 [1] 0x000000000000…961cd533 data: 0x000000000000000000…9340f3e8 |
| 0x09238d…207ab2 | 19 days agoMon, 27 Jul 2026 11:16:29 UTC | Transfer | [0] 0x000000000000…ce204f23 [1] 0x000000000000…45aae695 data: 0x000000000000000000…9340f3e8 |
| 0x3f431b…454716 | 19 days agoMon, 27 Jul 2026 11:16:23 UTC | Approval | [0] 0x000000000000…ce204f23 [1] 0x000000000000…45aae695 data: 0x000000000000000000…9340f3e8 |
| 0x1a077d…1643e7 | 19 days agoMon, 27 Jul 2026 11:00:09 UTC | Transfer | [0] 0x000000000000…05d39e1f [1] 0x000000000000…961cd533 data: 0x000000000000000000…7ca0a9ad |
| 0x3fae96…8351bd | 19 days agoMon, 27 Jul 2026 10:59:02 UTC | Approval | [0] 0x000000000000…05d39e1f [1] 0x000000000000…3ac78ba3 data: 0xffffffffffffffffff…ffffffff |
| 0x5fb94c…97c85f | 19 days agoMon, 27 Jul 2026 10:59:02 UTC | Transfer | [0] 0x000000000000…961cd533 [1] 0x000000000000…05d39e1f data: 0x000000000000000000…7ca0a9ad |
| 0xaab2f2…95152d | 19 days agoMon, 27 Jul 2026 10:58:59 UTC | Transfer | [0] 0x000000000000…a3e5efd6 [1] 0x000000000000…ce204f23 data: 0x000000000000000000…00002fe8 |
| 0xaab2f2…95152d | 19 days agoMon, 27 Jul 2026 10:58:59 UTC | Transfer | [0] 0x000000000000…961cd533 [1] 0x000000000000…ce204f23 data: 0x000000000000000000…9340c400 |
| 0xaab2f2…95152d | 19 days agoMon, 27 Jul 2026 10:58:59 UTC | Transfer | [0] 0x000000000000…a3e5efd6 [1] 0x000000000000…961cd533 data: 0x000000000000000000…e7ffd018 |
| 0xaab2f2…95152d | 19 days agoMon, 27 Jul 2026 10:58:59 UTC | Approval | [0] 0x000000000000…a3e5efd6 [1] 0x000000000000…638de0d3 data: 0x000000000000000000…e8000000 |
| 0xaab2f2…95152d | 19 days agoMon, 27 Jul 2026 10:58:59 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…a3e5efd6 data: 0x000000000000000000…e8000000 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x3f431b…454716 | Approve | 20,688,977 | 19 days agoMon, 27 Jul 2026 11:16:23 UTC | 0x949b…4f23 | IN | TEH EPI DUCK | $0.000 ETH | 0.00000171 | |
| 0x3fae96…8351bd | Approve | 20,678,607 | 19 days agoMon, 27 Jul 2026 10:59:02 UTC | 0x2a04…9e1f | IN | TEH EPI DUCK | $0.000 ETH | 0.00000171 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 20,678,573 | 19 days agoMon, 27 Jul 2026 10:58:59 UTC | 0xaab2f2…95152d | CREATE2 | launchWithMeta | 0xf5ac…efd6 | IN | 0xd2d7…1d4e | 0 ETH |