Transaction Hash:
Block:
17538157 at Jun-22-2023 10:34:47 PM +UTC
Transaction Fee:
0.00078876211455415 ETH
$2.02
Gas Used:
46,607 Gas / 16.92368345 Gwei
Emitted Events:
90 |
PEON.Approval( owner=[Sender] 0x5050af2a28b3f2a3cb77eb3fc970bcaa3a3a893a, spender=0xAfF19F82...CcB6B5f23, value=115792089237316195423570985008687907853269984665640564039457584007913129639935 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x5050af2A...A3A3a893a |
0.082670992691869837 Eth
Nonce: 290
|
0.081882230577315687 Eth
Nonce: 291
| 0.00078876211455415 | ||
0x5269c990...759C1e0A8 | |||||
0xe688b84b...2CDB71127
Miner
| (Fee Recipient: 0xe68...127) | 654.127629769291485493 Eth | 654.127699679791485493 Eth | 0.0000699105 |
Execution Trace
PEON.approve( spender=0xAfF19F821Cf93Fe10af0f84fF1CD208CcB6B5f23, amount=115792089237316195423570985008687907853269984665640564039457584007913129639935 ) => ( True )
approve[PEON (ln:199)]
_approve[PEON (ln:200)]
Approval[PEON (ln:217)]
_msgSender[PEON (ln:200)]
/* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░ Website: https://peon.vip/ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░ TG: https://t.me/PeonETH ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░ Twitter: https://twitter.com/PeonCoinETH ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.18; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, " multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "caller is not the owner"); _; } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "new owner is the zero address"); _owner = newOwner; emit OwnershipTransferred(_owner, newOwner); } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } 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 IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); } contract PEON is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balance; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFeeWallet; uint8 private constant _decimals = 18; uint256 private constant _totalSupply = 10000 * 10**_decimals; uint256 private constant onePercent = 30 * 10**_decimals; //1% from Liquidity supply uint256 public maxWalletAmount = onePercent * 2; //max Wallet at launch = 2% from Liquidity supply uint256 private _tax; uint256 public buyTax = 20; uint256 public sellTax = 30; string private constant _name = "PEON"; string private constant _symbol = "$PEON"; IUniswapV2Router02 private uniswapV2Router; address public uniswapV2Pair; address payable public taxWallet; uint256 private launchedAt; uint256 private launchDelay = 2; bool private launch = false; uint256 private constant minSwap = onePercent / 20; //0.05% from Liquidity supply bool private inSwapAndLiquify; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor(address[] memory wallets) { uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); taxWallet = payable(0x6751202f2d7bE4EABEf7a2AD83d17864A04B0A06); for (uint256 i = 0; i < wallets.length; i++) { _isExcludedFromFeeWallet[wallets[i]] = true; } _isExcludedFromFeeWallet[msg.sender] = true; _isExcludedFromFeeWallet[taxWallet] = true; _isExcludedFromFeeWallet[address(this)] = true; _allowances[taxWallet][address(uniswapV2Router)] = _totalSupply;//Approve at deploy _balance[taxWallet] = _totalSupply; emit Transfer(address(0), address(taxWallet), _totalSupply); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balance[account]; } function transfer(address recipient, uint256 amount)public override returns (bool){ _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256){ return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool){ _approve(_msgSender(), spender, amount); return true; } function newDelay(uint256 newLaunchDelay) external onlyOwner { launchDelay = newLaunchDelay; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"low allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0) && spender != address(0), "approve zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function enableTrading() external onlyOwner { launch = true; launchedAt = block.number; } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "transfer zero address"); if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) { _tax = 0; } else { require(launch, "Wait till launch"); if (block.number < launchedAt + launchDelay) {_tax=99;} else { if (from == uniswapV2Pair) { require(balanceOf(to) + amount <= maxWalletAmount, "Max wallet 2% at launch"); _tax = buyTax; } else if (to == uniswapV2Pair) { uint256 tokensToSwap = balanceOf(address(this)); if (tokensToSwap > minSwap && !inSwapAndLiquify) { if (tokensToSwap > onePercent) { tokensToSwap = onePercent; } swapTokensForEth(tokensToSwap); } _tax = sellTax; } else { _tax = 0; } } } uint256 taxTokens = (amount * _tax) / 100; uint256 transferAmount = amount - taxTokens; _balance[from] = _balance[from] - amount; _balance[to] = _balance[to] + transferAmount; _balance[address(this)] = _balance[address(this)] + taxTokens; emit Transfer(from, to, transferAmount); } function removeLimits() external onlyOwner { maxWalletAmount = _totalSupply; } function newTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner { buyTax = newBuyTax; sellTax = newSellTax; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, taxWallet, block.timestamp ); } function setExcludeWalletFromLimits(address newWallet, bool exclude) external onlyOwner { _isExcludedFromFeeWallet[newWallet] = exclude; } receive() external payable {} } //NFA the team/developer is not responsible for anything.