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
}"
}
}
}}
Submitted on: 2025-10-13 21:23:08
Comments
Log in to comment.
No comments yet.