Address Contract Partially Verified
Address
0x2C01E5030009377aA18C6789BAF5B2DE36bc596a
Balance
0 ETH
Nonce
1
Code Size
2586 bytes
Creator
0xd96B8865...80Ba at tx 0xde9be8b1...7ee0c7
Indexed Transactions
0 (1 on-chain, 1.7% indexed)
Contract Bytecode
2586 bytes
0x6080604052600436106100e15760003560e01c806370a082311161007f57806395d89b411161005957806395d89b41146100ed578063a9059cbb14610270578063dd62ed3e14610290578063f1d5f517146102d657600080fd5b806370a08231146101fb578063715018a614610231578063893d20e81461024857600080fd5b806323b872dd116100bb57806323b872dd1461017a5780632f54bf6e1461019a578063313ce567146101c95780636c0a24eb146101e557600080fd5b806306fdde03146100ed578063095ea7b31461012b57806318160ddd1461015b57600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b50604080518082018252600681526531b93cb83a1760d11b602082015290516101229190610820565b60405180910390f35b34801561013757600080fd5b5061014b610146366004610891565b6102f6565b6040519015158152602001610122565b34801561016757600080fd5b506002545b604051908152602001610122565b34801561018657600080fd5b5061014b6101953660046108bb565b610362565b3480156101a657600080fd5b5061014b6101b53660046108f7565b6000546001600160a01b0391821691161490565b3480156101d557600080fd5b5060405160098152602001610122565b3480156101f157600080fd5b5061016c60035481565b34801561020757600080fd5b5061016c6102163660046108f7565b6001600160a01b031660009081526004602052604090205490565b34801561023d57600080fd5b506102466103f7565b005b34801561025457600080fd5b506000546040516001600160a01b039091168152602001610122565b34801561027c57600080fd5b5061014b61028b366004610891565b610484565b34801561029c57600080fd5b5061016c6102ab366004610912565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156102e257600080fd5b506102466102f1366004610945565b610491565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103519086815260200190565b60405180910390a350600192915050565b6001600160a01b0383166000908152600560209081526040808320338452909152812054600019146103e2576001600160a01b03841660009081526005602090815260408083203384529091529020546103bd908390610974565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b6103ed8484846104f4565b90505b9392505050565b6000546001600160a01b0316331461043f5760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b60448201526064015b60405180910390fd5b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006103f03384846104f4565b6000546001600160a01b031633146104d45760405162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b6044820152606401610436565b6064816002546104e4919061098b565b6104ee91906109aa565b60035550565b60095460009060ff16156105145761050d8484846106c0565b90506103f0565b6001546001600160a01b038481169116146105cf576001600160a01b03831660009081526007602052604090205460ff168061057557506003546001600160a01b0384166000908152600460205260409020546105729084906109cc565b11155b6105cf5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610436565b6001600160a01b0384166000908152600460205260409020546105f3908390610974565b6001600160a01b038516600090815260046020908152604080832093909355600690529081205460ff16156106285782610632565b610632858461077a565b6001600160a01b0385166000908152600460205260409020549091506106599082906109cc565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ad9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600460205260408120546106e4908390610974565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546107149083906109cc565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107689086815260200190565b60405180910390a35060019392505050565b60008060646008548461078d919061098b565b61079791906109aa565b306000908152600460205260409020549091506107b59082906109cc565b30600081815260046020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108069085815260200190565b60405180910390a36108188184610974565b949350505050565b600060208083528351808285015260005b8181101561084d57858101830151858201604001528201610831565b8181111561085f576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461088c57600080fd5b919050565b600080604083850312156108a457600080fd5b6108ad83610875565b946020939093013593505050565b6000806000606084860312156108d057600080fd5b6108d984610875565b92506108e760208501610875565b9150604084013590509250925092565b60006020828403121561090957600080fd5b6103f082610875565b6000806040838503121561092557600080fd5b61092e83610875565b915061093c60208401610875565b90509250929050565b60006020828403121561095757600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156109865761098661095e565b500390565b60008160001904831182151516156109a5576109a561095e565b500290565b6000826109c757634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156109df576109df61095e565b50019056fea26469706673582212200688af27dc3a9876a93fa170dd1be3205a8f13fca0ce4a747b3e1618499785a564736f6c634300080f0033
Verified Source Code Partial Match
Compiler: v0.8.15+commit.e14f2714
EVM: london
Optimization: Yes (200 runs)
crypt.sol 199 lines
//SPDX-License-Identifier: MIT
//crypt. 3/3 (to avoid mev)
/**
The priest crept into the crypt
To see if the graves were intact
But a ghost apparition
Changed his position
And the priest had a quick heart attack
**/
pragma solidity ^0.8.5;
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 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 addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract crypt is ERC20, Ownable {
address DEAD = 0x000000000000000000000000000000000000dEaD;
uint8 constant _decimals = 9;
uint256 _totalSupply = 1000000000000 * (10 ** _decimals);
uint256 public _maxWalletAmount = (_totalSupply * 100) / 100;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) _allowances;
string constant _name = "crypt.";
string constant _symbol = "crypt.";
mapping (address => bool) isFeeExempt;
mapping (address => bool) isTxLimitExempt;
uint256 totalFee = 3;
bool inSwap;
modifier swapping() { inSwap = true; _; inSwap = false; }
constructor () Ownable(msg.sender) {
address _owner = owner;
isFeeExempt[owner] = true;
isTxLimitExempt[_owner] = true;
isTxLimitExempt[DEAD] = true;
_balances[_owner] = _totalSupply;
emit Transfer(address(0), _owner, _totalSupply);
}
receive() external payable { }
function approve(address spender, uint256 amount) public override returns (bool) {
_allowances[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
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] - amount;
}
return _transferFrom(sender, recipient, amount);
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(inSwap){ return _basicTransfer(sender, recipient, amount); }
if (recipient != DEAD) {
require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
}
_balances[sender] = _balances[sender] - amount;
uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
_balances[recipient] = _balances[recipient] + amountReceived;
emit Transfer(sender, recipient, amountReceived);
return true;
}
function takeFee(address sender, uint256 amount) internal returns (uint256) {
uint256 feeAmount = amount * totalFee / 100;
_balances[address(this)] = _balances[address(this)] + feeAmount;
emit Transfer(sender, address(this), feeAmount);
return amount - feeAmount;
}
function shouldTakeFee(address sender) internal view returns (bool) {
return !isFeeExempt[sender];
}
function setWalletLimit(uint256 amountPercent) external onlyOwner {
_maxWalletAmount = (_totalSupply * amountPercent ) / 100;
}
function totalSupply() external view override returns (uint256) { return _totalSupply; }
function decimals() external pure override returns (uint8) { return _decimals; }
function symbol() external pure override returns (string memory) { return _symbol; }
function name() external pure override returns (string memory) { return _name; }
function getOwner() external view override returns (address) { return owner; }
function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender] - amount;
_balances[recipient] = _balances[recipient] + amount;
emit Transfer(sender, recipient, amount);
return true;
}
event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}
Read Contract
_maxWalletAmount 0x6c0a24eb → uint256
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getOwner 0x893d20e8 → address
isOwner 0x2f54bf6e → bool
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
Write Contract 5 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
renounceOwnership 0x715018a6
No parameters
setWalletLimit 0xf1d5f517
uint256 amountPercent
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
Recent Transactions
This address has 1 on-chain transactions, but only 1.7% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →