Address Contract Partially Verified
Address
0x1ddbB18ECf92d02Bb386224F0d160f30305150dD
Balance
0 ETH
Nonce
1
Code Size
5990 bytes
Creator
0x0AA44C59...6f7A at tx 0x4229c7dc...3adc44
Indexed Transactions
0
Contract Bytecode
5990 bytes
0x6080604052600436106101ff575f3560e01c80636ce46bc311610113578063a9059cbb1161009d578063e96fada21161006d578063e96fada21461061a578063f33dfea014610639578063f887ea4014610658578063fd414aa814610677578063fed0d2a11461068c575f80fd5b8063a9059cbb14610579578063c647b20e14610598578063dd62ed3e146105b7578063df20fd49146105fb575f80fd5b8063893d20e8116100e3578063893d20e8146104a85780638da5cb5b146104d857806395d89b41146104f6578063a4b45c0014610527578063a8aa1b3114610546575f80fd5b80636ce46bc31461042a5780636ddd17131461044957806370a0823114610469578063715018a614610494575f80fd5b80632f54bf6e1161019457806351bc3c851161016457806351bc3c85146103ac578063571ac8b0146103c25780635921652f146103e15780636998d19d146103f65780636b67c4df14610415575f80fd5b80632f54bf6e146103165780633121c7c014610343578063313ce567146103585780633f4218e01461037e575f80fd5b806318160ddd116101cf57806318160ddd146102ba5780631df4ccfc146102ce57806323b872dd146102e35780632b112e4914610302575f80fd5b80630445b6671461020a57806306fdde0314610232578063095ea7b314610277578063180b0d7e146102a6575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021f600d5481565b6040519081526020015b60405180910390f35b34801561023d575f80fd5b5061026a6040518060400160405280600d81526020016c436f696e54656e736f7220414960981b81525081565b6040516102299190611317565b348015610282575f80fd5b5061029661029136600461137d565b6106a1565b6040519015158152602001610229565b3480156102b1575f80fd5b5061021f606481565b3480156102c5575f80fd5b5061021f61070d565b3480156102d9575f80fd5b5061021f60065481565b3480156102ee575f80fd5b506102966102fd3660046113a5565b61072a565b34801561030d575f80fd5b5061021f6107e8565b348015610321575f80fd5b506102966103303660046113de565b5f546001600160a01b0391821691161490565b34801561034e575f80fd5b5061021f60075481565b348015610363575f80fd5b5061036c601281565b60405160ff9091168152602001610229565b348015610389575f80fd5b506102966103983660046113de565b60036020525f908152604090205460ff1681565b3480156103b7575f80fd5b506103c061086e565b005b3480156103cd575f80fd5b506102966103dc3660046113de565b6108a7565b3480156103ec575f80fd5b5061021f60095481565b348015610401575f80fd5b506103c0610410366004611406565b6108b3565b348015610420575f80fd5b5061021f60045481565b348015610435575f80fd5b506103c0610444366004611483565b6109b6565b348015610454575f80fd5b50600c5461029690600160a01b900460ff1681565b348015610474575f80fd5b5061021f6104833660046113de565b60016020525f908152604090205481565b34801561049f575f80fd5b506103c06109f0565b3480156104b3575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610229565b3480156104e3575f80fd5b505f546104c0906001600160a01b031681565b348015610501575f80fd5b5061026a604051806040016040528060068152602001652a22a729a7a960d11b81525081565b348015610532575f80fd5b506103c06105413660046114ac565b610a5d565b348015610551575f80fd5b506104c07f00000000000000000000000099d96f99309fc5ebe4fc534d104ba71db0912ae181565b348015610584575f80fd5b5061029661059336600461137d565b610ab4565b3480156105a3575f80fd5b506103c06105b23660046114dd565b610ac0565b3480156105c2575f80fd5b5061021f6105d13660046114ac565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610606575f80fd5b506103c06106153660046114fd565b610b04565b348015610625575f80fd5b50600a546104c0906001600160a01b031681565b348015610644575f80fd5b50600b546104c0906001600160a01b031681565b348015610663575f80fd5b50600c546104c0906001600160a01b031681565b348015610682575f80fd5b5061021f60055481565b348015610697575f80fd5b5061021f60085481565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106fb9086815260200190565b60405180910390a35060015b92915050565b6107196012600a61160b565b610727906301c9c380611619565b81565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f19146107d3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526002825283812033825290915291909120546107af918490610b70565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b6107de848484610ba8565b90505b9392505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead5f9081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d549091906108476012600a61160b565b610855906301c9c380611619565b61085f9190611630565b6108699190611630565b905090565b600b546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156108a4573d5f803e3d5ffd5b50565b5f610707825f196106a1565b5f546001600160a01b031633146108e55760405162461bcd60e51b81526004016108dc90611643565b60405180910390fd5b6101f582106109445760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108dc565b5f5b828110156109b0578160035f86868581811061096457610964611663565b905060200201602081019061097991906113de565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556109a981611677565b9050610946565b50505050565b5f546001600160a01b031633146109df5760405162461bcd60e51b81526004016108dc90611643565b600891909155600791909155600955565b5f546001600160a01b03163314610a195760405162461bcd60e51b81526004016108dc90611643565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610a865760405162461bcd60e51b81526004016108dc90611643565b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b5f6107e1338484610ba8565b5f546001600160a01b03163314610ae95760405162461bcd60e51b81526004016108dc90611643565b60048290556005819055610afd818361168f565b6006555050565b5f546001600160a01b03163314610b2d5760405162461bcd60e51b81526004016108dc90611643565b600c805460ff60a01b1916600160a01b8415150217905580610b516012600a61160b565b610b5f906301c9c380611619565b610b6991906116a2565b600d555050565b5f8184841115610b935760405162461bcd60e51b81526004016108dc9190611317565b505f610b9f8486611630565b95945050505050565b600e545f9060ff1615610bc757610bc0848484610d19565b90506107e1565b610bcf610dfc565b15610bdc57610bdc610e6d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260019091529190912054610c2d918490610b70565b6001600160a01b0385165f90815260016020908152604080832093909355600390529081205460ff1680610c7857506001600160a01b0384165f9081526003602052604090205460ff165b610c8c57610c87858486611034565b610c8e565b825b6001600160a01b0385165f90815260016020526040902054909150610cb3908261118d565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d069085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600190915291822054610d69918490610b70565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610d97908361118d565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dea9086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f00000000000000000000000099d96f99309fc5ebe4fc534d104ba71db0912ae11614801590610e395750600e5460ff16155b8015610e4e5750600c54600160a01b900460ff165b8015610869575050600d54305f90815260016020526040902054101590565b600e805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610ead57610ead611663565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610f0157610f01611663565b6001600160a01b039283166020918202929092010152600c54600d5460405163791ac94760e01b8152919092169163791ac94791610f4a91905f908690309042906004016116c1565b5f604051808303815f87803b158015610f61575f80fd5b505af1158015610f73573d5f803e3d5ffd5b50506006546004544793505f9250610f8b9084611619565b610f9591906116a2565b90505f60065460055484610fa99190611619565b610fb391906116a2565b600a546040519192506001600160a01b03169083156108fc029084905f818181858888f19350505050158015610feb573d5f803e3d5ffd5b50600b546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611023573d5f803e3d5ffd5b5050600e805460ff19169055505050565b5f8215806110425750600654155b1561104e5750816107e1565b6009546001600160a01b037f00000000000000000000000099d96f99309fc5ebe4fc534d104ba71db0912ae181169084160361108d57506008546110cb565b7f00000000000000000000000099d96f99309fc5ebe4fc534d104ba71db0912ae16001600160a01b0316856001600160a01b0316036110cb57506007545b5f6110ff6110da606480611619565b6110f9846110f36006548a6111eb90919063ffffffff16565b906111eb565b90611269565b9050801561117957305f90815260016020526040902054611120908261118d565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111709085815260200190565b60405180910390a35b61118385826112aa565b9695505050505050565b5f80611199838561168f565b9050838110156107e15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108dc565b5f825f036111fa57505f610707565b5f6112058385611619565b90508261121285836116a2565b146107e15760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108dc565b5f6107e183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112eb565b5f6107e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b70565b5f818361130b5760405162461bcd60e51b81526004016108dc9190611317565b505f610b9f84866116a2565b5f6020808352835180828501525f5b8181101561134257858101830151858201604001528201611326565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611378575f80fd5b919050565b5f806040838503121561138e575f80fd5b61139783611362565b946020939093013593505050565b5f805f606084860312156113b7575f80fd5b6113c084611362565b92506113ce60208501611362565b9150604084013590509250925092565b5f602082840312156113ee575f80fd5b6107e182611362565b80358015158114611378575f80fd5b5f805f60408486031215611418575f80fd5b833567ffffffffffffffff8082111561142f575f80fd5b818601915086601f830112611442575f80fd5b813581811115611450575f80fd5b8760208260051b8501011115611464575f80fd5b60209283019550935061147a91860190506113f7565b90509250925092565b5f805f60608486031215611495575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156114bd575f80fd5b6114c683611362565b91506114d460208401611362565b90509250929050565b5f80604083850312156114ee575f80fd5b50508035926020909101359150565b5f806040838503121561150e575f80fd5b611397836113f7565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561156557815f190482111561154b5761154b611517565b8085161561155857918102915b93841c9390800290611530565b509250929050565b5f8261157b57506001610707565b8161158757505f610707565b816001811461159d57600281146115a7576115c3565b6001915050610707565b60ff8411156115b8576115b8611517565b50506001821b610707565b5060208310610133831016604e8410600b84101617156115e6575081810a610707565b6115f0838361152b565b805f190482111561160357611603611517565b029392505050565b5f6107e160ff84168361156d565b808202811582820484141761070757610707611517565b8181038181111561070757610707611517565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161168857611688611517565b5060010190565b8082018082111561070757610707611517565b5f826116bc57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561170f5784516001600160a01b0316835293830193918301916001016116ea565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b065a9d4a0b68f1acf3b45fb09269a32114a0885043037cb18191479c8704da264736f6c63430008150033
Verified Source Code Partial Match
Compiler: v0.8.21+commit.d9974bed
EVM: shanghai
Optimization: Yes (200 runs)
CoinTensorAI.sol 294 lines
// SPDX-License-Identifier: MIT
/*
Website: https://cointensor.io
Telegram: https://t.me/cointensor
Twitter: https://x.com/cointensor
*/
pragma solidity 0.8.21;
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 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 Auth {
address public 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() external onlyOwner {
owner = address(0);
emit OwnershipTransferred(owner);
}
event OwnershipTransferred(address owner);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract CoinTensorAI is ERC20, Auth {
using SafeMath for uint256;
address immutable WETH;
address constant DEAD = 0x000000000000000000000000000000000000dEaD;
address constant ZERO = 0x0000000000000000000000000000000000000000;
string public constant name = "CoinTensor AI";
string public constant symbol = "TENSOR";
uint8 public constant decimals = 18;
uint256 public constant totalSupply = 30_000_000 * 10**decimals;
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) _allowances;
mapping (address => bool) public isFeeExempt;
uint256 public marketingFee = 4;
uint256 public opsFee = 1;
uint256 public totalFee = marketingFee + opsFee;
uint256 public constant feeDenominator = 100;
uint256 public buyMultiplier = 50;
uint256 public sellMultiplier = 50;
uint256 public transferMultiplier = 0;
address public marketingFeeReceiver;
address public opsFeeReceiver;
IDEXRouter public router;
address public immutable pair;
bool public swapEnabled = true;
uint256 public swapThreshold = totalSupply / 200;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
constructor () Auth(msg.sender) {
router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
WETH = router.WETH();
pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
_allowances[address(this)][address(router)] = type(uint256).max;
marketingFeeReceiver = 0x294425583E443f1e1615BAC0abFe6363c871D03e;
opsFeeReceiver = 0x302422bc13b635c3046de11de1C5f19994C73Db5;
isFeeExempt[msg.sender] = true;
isFeeExempt[marketingFeeReceiver] = true;
isFeeExempt[opsFeeReceiver] = true;
balanceOf[msg.sender] = totalSupply;
emit Transfer(address(0), msg.sender, totalSupply);
}
receive() external payable { }
function getOwner() external view override returns (address) { return owner; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function approveMax(address spender) external returns (bool) {
return approve(spender, type(uint256).max);
}
function transfer(address recipient, uint256 amount) external override returns (bool) {
return _transferFrom(msg.sender, recipient, amount);
}
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 _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if(shouldSwapBack()){ swapBack(); }
balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
balanceOf[recipient] = balanceOf[recipient].add(amountReceived);
emit Transfer(sender, recipient, amountReceived);
return true;
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
balanceOf[recipient] = balanceOf[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
if(amount == 0 || totalFee == 0){
return amount;
}
uint256 multiplier = transferMultiplier;
if(recipient == pair) {
multiplier = sellMultiplier;
} else if(sender == pair) {
multiplier = buyMultiplier;
}
uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
if(feeAmount > 0){
balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
}
return amount.sub(feeAmount);
}
function shouldSwapBack() internal view returns (bool) {
return msg.sender != pair
&& !inSwap
&& swapEnabled
&& balanceOf[address(this)] >= swapThreshold;
}
function manualSwap() external {
payable(opsFeeReceiver).transfer(address(this).balance);
}
function swapBack() internal swapping {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = WETH;
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
swapThreshold,
0,
path,
address(this),
block.timestamp
);
uint256 amountETH = address(this).balance;
uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee;
uint256 amountETHOps = (amountETH * opsFee) / totalFee;
payable(marketingFeeReceiver).transfer(amountETHMarketing);
payable(opsFeeReceiver).transfer(amountETHOps);
}
function manage_feeExempt(address[] calldata addresses, bool status) external onlyOwner {
require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
for (uint256 i=0; i < addresses.length; ++i) {
isFeeExempt[addresses[i]] = status;
}
}
function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
sellMultiplier = _sell;
buyMultiplier = _buy;
transferMultiplier = _trans;
}
function setTaxes(uint256 _marketingFee, uint256 _opsFee) external onlyOwner {
marketingFee = _marketingFee;
opsFee = _opsFee;
totalFee = marketingFee + opsFee;
}
function setFeeReceivers(address _marketingFeeReceiver, address _opsFeeReceiver ) external onlyOwner {
marketingFeeReceiver = _marketingFeeReceiver;
opsFeeReceiver = _opsFeeReceiver;
}
function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
swapEnabled = _enabled;
swapThreshold = totalSupply / _denominator;
}
function getCirculatingSupply() public view returns (uint256) {
return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
}
}
Read Contract
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
buyMultiplier 0x3121c7c0 → uint256
decimals 0x313ce567 → uint8
feeDenominator 0x180b0d7e → uint256
getCirculatingSupply 0x2b112e49 → uint256
getOwner 0x893d20e8 → address
isFeeExempt 0x3f4218e0 → bool
isOwner 0x2f54bf6e → bool
marketingFee 0x6b67c4df → uint256
marketingFeeReceiver 0xe96fada2 → address
name 0x06fdde03 → string
opsFee 0xfd414aa8 → uint256
opsFeeReceiver 0xf33dfea0 → address
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
sellMultiplier 0xfed0d2a1 → uint256
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalFee 0x1df4ccfc → uint256
totalSupply 0x18160ddd → uint256
transferMultiplier 0x5921652f → uint256
Write Contract 11 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
manage_feeExempt 0x6998d19d
address[] addresses
bool status
manualSwap 0x51bc3c85
No parameters
renounceOwnership 0x715018a6
No parameters
setFeeReceivers 0xa4b45c00
address _marketingFeeReceiver
address _opsFeeReceiver
setMultipliers 0x6ce46bc3
uint256 _buy
uint256 _sell
uint256 _trans
setSwapBackSettings 0xdf20fd49
bool _enabled
uint256 _denominator
setTaxes 0xc647b20e
uint256 _marketingFee
uint256 _opsFee
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
Recent Transactions
No transactions found for this address