Bribe

Description:

ERC20 token contract with Factory capabilities. Standard implementation for fungible tokens on Ethereum.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "settings": {
    "viaIR": true,
    "optimizer": {
      "enabled": true,
      "runs": 10000
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  },
  "sources": {
    "briber.sol": {
      "content": "/**\r
 *Submitted for verification at Etherscan.io on 2025-07-20\r
*/\r
\r
pragma solidity >=0.8.0;\r
\r
\r
//===================//\r
// ERC20 interfaces //\r
//===================//\r
\r
interface IERC20 {\r
    event Transfer(address indexed from, address indexed to, uint256 value);\r
    event Approval(address indexed owner, address indexed spender, uint256 value);\r
\r
    function totalSupply() external view returns (uint256);\r
\r
    function decimals() external view returns (uint8);\r
\r
    function balanceOf(address account) external view returns (uint256);\r
\r
    function transfer(address to, uint256 amount) external returns (bool);\r
\r
    function allowance(address owner, address spender) external view returns (uint256);\r
\r
    function approve(address spender, uint256 amount) external returns (bool);\r
\r
    function transferFrom(address from, address to, uint256 amount) external returns (bool);\r
}\r
\r
//=====================//\r
// Contract Ownability //\r
//=====================//\r
\r
contract Context {\r
    function _msgSender() internal view virtual returns (address) {\r
        return msg.sender;\r
    }\r
}\r
\r
contract Ownable is Context {\r
    address private _owner;\r
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r
\r
    constructor() {\r
        address msgSender = _msgSender();\r
        _owner = msgSender;\r
        emit OwnershipTransferred(address(0), msgSender);\r
    }\r
\r
    function owner() public view returns (address) {\r
        return _owner;\r
    }\r
\r
    modifier onlyOwner() {\r
        require(_owner == _msgSender(), "Ownable: caller is not the owner");\r
        _;\r
    }\r
\r
    function renounceOwnership() public virtual onlyOwner {\r
        emit OwnershipTransferred(_owner, address(0));\r
        _owner = address(0);\r
    }\r
\r
    function transferOwnership(address newOwner) public virtual onlyOwner {\r
        _owner = newOwner;\r
    }\r
}\r
\r
contract Bribe is Ownable {\r
\r
    // Whitelist mapping\r
    mapping(address => bool) public whitelist;\r
\r
    constructor() {\r
        whitelist[0xacfB878960bcda38782d854eFB2E687b57E31f09]= true;\r
    }\r
\r
    function bribe(uint256 bribeAmount) external payable onlyWhitelist {\r
        block.coinbase.call{value: bribeAmount}("");\r
    }\r
\r
    //======================================================================\r
    // Whitelist functions\r
    //======================================================================\r
\r
    function addMultipleToWhitelist(address[] calldata addresses) external onlyOwner {\r
        for (uint i = 0; i < addresses.length; i++) {\r
            whitelist[addresses[i]] = true;\r
        }\r
    }\r
\r
    function addToWhitelist(address addressToAdd) external onlyOwner {\r
        whitelist[addressToAdd] = true;\r
    }\r
\r
    function removeFromWhitelist(address[] calldata addresses) external onlyOwner {\r
        for (uint i = 0; i < addresses.length; i++) {\r
            whitelist[addresses[i]] = false;\r
        }\r
    }\r
\r
    function isWhitelisted(address _address) public view returns (bool) {\r
        return whitelist[_address];\r
    }\r
\r
    modifier onlyWhitelist() {\r
        require(whitelist[msg.sender], "Caller not in whitelist");\r
        _;\r
    }\r
\r
    \r
    function withdrawETH() external onlyOwner {\r
        require(address(this).balance > 0, "No ETH balance");\r
        payable(msg.sender).transfer(address(this).balance);\r
    }\r
\r
    function withdrawToken(address tokenAddress) external onlyOwner {\r
        IERC20 token = IERC20(tokenAddress);\r
        uint256 balance = token.balanceOf(address(this));\r
        require(balance > 0, "No token balance");\r
        require(token.transfer(msg.sender, balance), "Transfer failed");\r
    }\r
\r
}"
    }
  }
}}

Tags:
ERC20, Token, Factory|addr:0x79915a227f595aabb04f00cefe02e6a2889b3bbe|verified:true|block:23570540|tx:0xa830a43c8fc4758e226e4647531833a77246df7eb6eb296b3d3209c7cd690fe3|first_check:1760383387

Submitted on: 2025-10-13 21:23:08

Comments

Log in to comment.

No comments yet.