文件 1 的 1:BOBE.sol
pragma solidity ^0.8.2;
interface IBEP20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract BOBE is IBEP20 {
string public constant name = "Book of Brett";
string public constant symbol = "BOBE";
uint8 public constant decimals = 18;
uint256 public override totalSupply;
address public owner;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
modifier onlyOwner() {
require(msg.sender == owner, "Caller is not the owner");
_;
}
constructor() {
owner = msg.sender;
totalSupply = 1_000_000_000 * 10**uint256(decimals);
_balances[owner] = totalSupply;
emit Transfer(address(0), owner, totalSupply);
}
function balanceOf(address account) external view override returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function allowance(address tokenOwner, address spender) external view override returns (uint256) {
return _allowances[tokenOwner][spender];
}
function approve(address spender, uint256 amount) external override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
return true;
}
function renounceOwnership() external onlyOwner {
emit OwnershipTransferred(owner, address(0));
owner = address(0);
}
function _transfer(address sender, address recipient, uint256 amount) internal {
require(sender != address(0), "Transfer from the zero address");
require(recipient != address(0), "Transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
_balances[sender] -= amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}
function _approve(address tokenOwner, address spender, uint256 amount) internal {
require(tokenOwner != address(0), "Approve from the zero address");
require(spender != address(0), "Approve to the zero address");
_allowances[tokenOwner][spender] = amount;
emit Approval(tokenOwner, spender, amount);
}
function delta1(uint256 _delta11, uint256 _delta22) external pure returns(uint256) {
return _delta11 < _delta22 ? 1100 : 2200;
}
function delta2(bool _delta11, uint256 _delta22) internal pure returns (bool) {
return _delta11 || _delta22 < 4400;
}
function delta3(bool _delta3) internal pure returns (uint128) {
if (_delta3) {
return 1290;
}
return 4293;
}
function delta4(bool _delta1, bool _delta2) internal pure returns (bool) {
bool x = true;
uint256 y = 333;
if (x && y == 777) {
return _delta1 || _delta2 || x;
}
return _delta1;
}
function delta5(bool _delta55, bool _delta52, bool _delta53) internal pure returns (bool) {
bool x = false;
uint256 y = 9289;
if (x && y > 2232) {
return _delta55 || _delta52;
}
return _delta55 || _delta53;
}
function geisha(bool _delta71, bool _delta72, bool _delta73) internal pure returns (bool) {
bool x = false;
bool z = true;
uint256 y = 2048;
if (x && y < 1025 || z) {
return _delta71 || _delta72;
}
return _delta71 || _delta73;
}
function lemon(uint256 a, uint256 b) internal pure returns (uint256) {
return a < b ? a : (b + 220);
}
function apple(uint256 _s, uint256 _t) internal pure returns (bool) {
return _s + _t > 2392;
}
function leme(uint256 _s1, uint256 _s2) internal pure returns (bool) {
return _s1 > _s2 * 30;
}
}
{
"compilationTarget": {
"contracts/BOBE.sol": "BOBE"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}