Transaction Hash:
Block:
21206701 at Nov-17-2024 10:02:47 AM +UTC
Transaction Fee:
0.0004228014 ETH
$1.07
Gas Used:
41,370 Gas / 10.22 Gwei
Emitted Events:
44 |
GPTrump.Transfer( from=[Sender] 0xb8bb2831bbabfdb6f3313467a84bd25dc4e8684c, to=0x50Cf67b7e64D7057d8a237082877BD291948811c, value=1543816586821641 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x6453f0db...653700637 | |||||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 9.641223561120896909 Eth | 9.641278730281980029 Eth | 0.00005516916108312 | |
0xB8BB2831...dC4e8684C |
0.00801102194 Eth
Nonce: 29
|
0.00758822054 Eth
Nonce: 30
| 0.0004228014 |
Execution Trace
GPTrump.transfer( recipient=0x50Cf67b7e64D7057d8a237082877BD291948811c, amount=1543816586821641 ) => ( True )
transfer[GPTrump (ln:217)]
_transfer[GPTrump (ln:218)]
owner[GPTrump (ln:249)]
owner[GPTrump (ln:249)]
div[GPTrump (ln:251)]
mul[GPTrump (ln:251)]
balanceOf[GPTrump (ln:256)]
div[GPTrump (ln:257)]
mul[GPTrump (ln:257)]
div[GPTrump (ln:262)]
mul[GPTrump (ln:262)]
balanceOf[GPTrump (ln:265)]
swapTokensForEth[GPTrump (ln:271)]
WETH[GPTrump (ln:297)]
_approve[GPTrump (ln:298)]
Approval[GPTrump (ln:241)]
swapExactTokensForETHSupportingFeeOnTransferTokens[GPTrump (ln:299)]
min[GPTrump (ln:271)]
min[GPTrump (ln:271)]
sendETHToFee[GPTrump (ln:274)]
transfer[GPTrump (ln:321)]
add[GPTrump (ln:282)]
Transfer[GPTrump (ln:283)]
sub[GPTrump (ln:285)]
add[GPTrump (ln:286)]
sub[GPTrump (ln:286)]
Transfer[GPTrump (ln:287)]
sub[GPTrump (ln:287)]
_msgSender[GPTrump (ln:218)]
// SPDX-License-Identifier: MIT /** GPTrump │ $GPT Experience the future of political news delivery with GPTrump, designed to provide real-time, data-driven insights on what is one of, if not THE, most important presidential wins of our lifetime. 1/1 https://GPTrump.com https://X.com/GPTrumpETH https://T.me/GPTrumpETH */ pragma solidity 0.8.26; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, 'SafeMath: addition overflow'); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, 'SafeMath: 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, 'SafeMath: multiplication overflow'); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, 'SafeMath: 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; } } interface IUniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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(), 'Ownable: caller is not the owner'); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), 'New owner cannot be the zero address'); require(newOwner != _owner, 'New owner must be different'); address prevOwner = _owner; _owner = newOwner; emit OwnershipTransferred(prevOwner, newOwner); } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); 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 GPTrump is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isTaxExempt; address payable private _taxWallet; uint256 private _initialBuyTax = 17; uint256 private _initialSellTax = 17; uint256 private _finalBuyTax = 1; uint256 private _finalSellTax = 1; uint256 private _reduceBuyTaxAt = 30; uint256 private _reduceSellTaxAt = 30; uint256 private _preventSwapBefore = 30; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**_decimals; string private constant _name = unicode"GPTrump"; string private constant _symbol = unicode"GPT"; uint256 public _maxTxAmount = 2000000 * 10**_decimals; uint256 public _maxWalletSize = 2000000 * 10**_decimals; uint256 public _taxSwapThreshold= 2000000 * 10**_decimals; uint256 public _maxTaxSwap= 2000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); event FinalTaxesSet(uint _finalBuyTax, uint _finalSellTax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[address(this)] = _tTotal; _isTaxExempt[owner()] = true; _isTaxExempt[address(this)] = true; _isTaxExempt[_taxWallet] = true; emit Transfer(address(0), address(this), _tTotal); } 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 _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { 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 _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isTaxExempt[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 4, "Only 4 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function setFinalTaxes() external onlyOwner { _initialBuyTax = _finalBuyTax; _initialSellTax = _finalSellTax; emit FinalTaxesSet(_finalBuyTax, _finalSellTax); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addLiquidityEth() external payable onlyOwner { require(!tradingOpen, "Trading is already open."); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); IUniswapV2Factory uniswapV2Factory = IUniswapV2Factory( uniswapV2Router.factory() ); uniswapV2Pair = uniswapV2Factory.createPair( address(this), uniswapV2Router.WETH() ); _isTaxExempt[address(uniswapV2Pair)] = true; _approve(address(this), address(uniswapV2Router), totalSupply()); uniswapV2Router.addLiquidityETH{ value: msg.value }( address(this), totalSupply(), 0, 0, owner(), block.timestamp ); tradingOpen = true; swapEnabled = true; } receive() external payable {} function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ _transfer(address(this), _taxWallet, tokenBalance); } } function manualsend() external { require(_msgSender()==_taxWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } }