// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/*
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------:::----------------------------------
-------------------------------------------------------------://////--------------------------------
-----------------------------------------------------------:///::::/:-------------------------------
----------------------------------------------------------://:::::::/-------------------------------
---------------------------------------------------------:/:::::::::/:------------------------------
--------------------------------------------------------:/:::::::::://------------------------------
-------------------------------------------------------:/:::::::::::/+------------------------------
------------------------------------------------------:/:::::::::::::+------------------------------
-----------------------------------------------------://:::::::::::::/:-----------------------------
-----------------------------------------------------//::::::::::::::/:-----------------------------
----------------------------------------------------//:::::::::::::::/:-----------------------------
---------------------------------------------------:/:::::::::::::::://-----------------------------
---------------------------------------------------+::::::::::::::::::+-----------------------------
--------------------------------------------------//::::::::::::::::::+-----------------------------
-------------------------------------------------:/://///////////:::::+:----------------------------
------------------------------------------------:/::::::::////::::::::/:----------------------------
------------------------------------------------+/://///////////:::::://----------------------------
-----------------------------------------------//::::::::::::::::::::://----------------------------
----------------------------------------------://////:::::////:::::::::/----------------------------
---------------------------------------------:/+/.../+:::+:..-//:::::::+----------------------------
------------------------------------------:////o.:o``s:::o`-:``o:::::::+-:--------------------------
-----------------------------------------:////:+/+o///:::+/os/:+::::://////-------------------------
-----------------------------------------://+:://////::::///////::::///:::+-------------------------
-----------------------------------------:/+/:::////::::///:::::::::///+/:+-------------------------
------------------------------------------+/:::::///::::://::::::::::://///-------------------------
-----------------------------------------:/:::::://////////::::::::::::://--------------------------
-----------------------------------------+/:::::::::///:::::::::::::::://---------------------------
----------------------------------------//:::::::/oo/:/+/:::::::::::::://---------------------------
---------------------------------------:/::::::oydd:````-s/:::::::::::::/---------------------------
---------------------------------------+::::/ohdddd-`````ddo/:::::::::::+---------------------------
--------------------------------------//::+hddddddds//::odhys++/::::::::/---------------------------
-------------------------------------:/::://ossyyhhddddyysooooo/::::::::/---------------------------
-------------------------------------/:::::::::///////////////::::::::::+---------------------------
------------------------------------//::::::::///////////////:::::::::::+---------------------------
-----------------------------------//:::::::::::///////////:::::::::::::/---------------------------
----------------------------------:/::::::::::::::::::::::::::::::::::::/---------------------------
---------------------------------:/:::::::::::::::::::::::::::::::::::::/---------------------------
--------------------------------//::::::::::::::::::::::::::::::::::::::/:--------------------------
------------------------------://::::::::::::::::::::::::::::::::::::::://--------------------------
-----------------------------//:::::::::::::::::::::::::::::::::::::::::/+:-------------------------
---------------------------://:::::::::::::::::::::::::::::::::::::::::::/+-------------------------
-------------------------://:::::::::::::::::::::::::::::::::::::::::::::://------------------------
----------------------:://:://::::::::::::::::::::::::::::::::::::::::::::://-----------------------
--------------------://:::///::::::::::::::::::::::::::::::::::::::::::::::://:---------------------
-----------------:///:::///:::://::::::::::::::::::::::::::::::::::::::::::::://:-------------------
---------------:///:::////::::://::::::::::::::::::::::::::::::::::::::::::::::://:-----------------
-------------:///::::///:::::::::::::::::::::::::::::::::::::::::::::::::::::::::://:---------------
------------://::::///:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::///--------------
----------://::::///::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://:------------
--------://:::::///::::::::::::::::::::::::://::::::::::::::::::::/::::::::::::::::::::/:-----------
-------:/:::::://:::://:::::::::::::::::::::/:::::::::::::::::::::///::::::::::::::::::://----------
------:/:::::::+::::::/::::::::::::::::::::::::::::::::::::::::::::///::::::::::::::::::://---------
-----:/::::::://::::::::::::::::::::::::::::::::::::::::::::::::::::/+/:::::::::::::::::::/:--------
----:/::::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::::/+/::::::::::::://::::/:-------
---:+:::::::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::/+::::::::::::::::::://-------
---//://::::::+/:::::::::::://///::::::::::::::::::::::::::::::::::::::/+:::::::::::::::::::/-------
---/:://:::::://:::::::::::://///::::::::::::::::::::::::::::::::::::::://:::::::::::::::::://------
--:/::::::::::+s+:::::::::::////:::::::::+::::::::::::::::::::::::::::::://::::::::::::::::://------
--//::::::::::y:/++/:::::::::::::::::::::::::::::::::::::::::::::::::::::://:::::::::::::::://------
--//:::::::://s++::/o++/::::::::::::::::::::::::::::::::::::::::::::::::::://::::::::::::::::+------
--:/:::::///:o/:/so/:::/++++/:::::::::::::::::::::::::::::::::::::::::://++++/::::::/::::::://------
---://///::--s::o+ooso+/::///++//++/::::::::::::::::::::::::::::/++//++++++/++/:::::/::::::://------
------------:o:+o+++++oooo++/:::://++++++++++++++++++++++++++++++//++++++/::::///:::::::::::/:------
------------:o/o++++++++++oooooo+/////:::::://///////////++////+o+///::::::::::/o//:::::::::+-------
-------------s++++++++++++++++++ooooooos+++++++++++++++++//////::::::::::::::::o/::///:::::/:-------
-------------yo++++++++++++++++++++++++o::::::::::::::::::::::::::::::::::::::/s:---:://///:--------
-------------o/oo++++++++++++++++++++++o:::::::::::::::::::::::::::::::::://+++s--------------------
-------------:o:/++oo++++++++++++++++++o/:::::::::::::::::::::::::::::::/+oo++o+--------------------
--------------s::::o+++++++++++++++++++o::::::::::::::::::::::::::::::::++++++y:--------------------
---------------o::o++++++++++++o+o+++o+::::::::::::::::::::::::::::/++/:/o+++oo---------------------
---------------++:o+++++++++++++::///::::::::::::::::::::::::::::+oo++oo::+o+y:---------------------
----------------s:/oo+++++++++o::::::::::::::::::::::::::::::::+o+++++++o::ooo----------------------
----------------/+::/+oooooo+/:::+/:::::::::::o:::::::::::::::+o+++++++++o+os:----------------------
-----------------s::::::::::::::::/+++/++++o//s::::::::::::::+o++++++++++++o+-----------------------
-----------------+/:::::::::::::::::::::::/o--:o:::::::::::::s+++++++++++++s------------------------
-----------------+/++/::::::::::::::::::/+o:---+/::::::::::::s+++++++++++os/------------------------
-------------------:+/+++++++++/+++++o+//:-----+/::::::::::::/o++++++oooo/:-------------------------
--------------------//:::::://///////+---------:+++////+//////+sooooo/+/----------------------------
---------------------//::::::::::::::+------------/////////////////::/:-----------------------------
----------------------//::::::::::::/:-------------+::::::::::::::::/:------------------------------
-----------------------://::::::::://--------------:/::::::::::::://:-------------------------------
------------------------://///::////----------------//::::::::::://---------------------------------
---------------------------::::::::------------------://::::::://:----------------------------------
-------------------------------------------------------:///////:------------------------------------
---------------------------------------------------------::::---------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
------------------/hs-------:hhhhhhy:----yhhhhhh:---dshhhs/----:yy:-------yhhhhhh:------------------
------------------oMm-------/MMys--------NMhs-------dm--yMm----:MM:-------NMhs----------------------
------------------oMm-------/MMdddds-----NMmdddy----dm---MN----:MM:-------NMmdddy-------------------
------------------oMNoo+----/MMys--------NMhs-------mM--Mm-----:MM:-------NMhs----------------------
------------------/yyyys----:yyyyyyy:----yyyyyyy:---doyyy------:yyyyy:----yyyyyyy:------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
*/
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.0.0/contracts/token/ERC721/ERC721.sol";
contract antirug is ERC721 {
uint public totalminted = 0;
address owner;
bool public open;
uint256 public price;
uint supply;
string _baseuri = "QmSHvxqaEhESAmxVcSGSna6PVMNDF1MUixCAB4caepznYA";
uint public maxtxn;
uint public maxwallet;
constructor(uint _price, uint _supply, string memory _name, string memory _symbol, uint _maxtxn, uint _maxwallet) ERC721(_name,_symbol) {
owner = msg.sender;
maxtxn = _maxtxn;
maxwallet = _maxwallet;
price = _price;
supply = _supply;
}
modifier onlyOwner {
require(msg.sender == owner);
_;
}
function changePrice(uint256 _price) public onlyOwner {
price = _price;
}
function changeSupply(uint _supply) public onlyOwner {
require(_supply >= totalminted,"cant lower supply to less than current minted tokens.");
supply = _supply;
}
function totalSupply() public view returns (uint) {
return supply;
}
function setBase(string memory _ipfstoken) public onlyOwner {
_baseuri = _ipfstoken;
}
modifier mintCheck(uint _amount) {
require(open == true, "Minting not open");
require(_amount <= maxtxn, "More than max TxN");
require(_amount + balanceOf(msg.sender) <= maxwallet,"Txn would surpass wallet limits");
require((_amount + totalminted) <= supply,"More than available supply");
_;
}
function mint(uint _amount) public payable mintCheck(_amount) {
require((_amount*price) == msg.value,"not enough ether");
for (uint i=0;i<_amount;i++){
_mint(msg.sender, totalminted);
totalminted ++;
}
}
function pauser() public onlyOwner {
if (open == true) {
open = false;
} else {
open = true;
}
}
function withdraw() public onlyOwner {
payable(owner).transfer(address(this).balance);
}
function tokenURI(uint256 _tokenId) public view override returns (string memory) {
if (bytes(_baseuri).length > 0) {
return string(abi.encodePacked("ipfs://",_baseuri,"/",uint2str(_tokenId),".json"));
} else {
return "ipfs://QmXzxt5iNEdCEJ2exJpTDVxAGTSXhvu9F5Sa5LmzXdprr7";
}
}
function uint2str(uint _i) internal pure returns (string memory _uintAsString) {
if (_i == 0) {
return "0";
}
uint j = _i;
uint len;
while (j != 0) {
len++;
j /= 10;
}
bytes memory bstr = new bytes(len);
uint k = len;
while (_i != 0) {
k = k-1;
uint8 temp = (48 + uint8(_i - _i / 10 * 10));
bytes1 b1 = bytes1(temp);
bstr[k] = b1;
_i /= 10;
}
return string(bstr);
}
}
{
"compilationTarget": {
"Rugburn.sol": "antirug"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_maxtxn","type":"uint256"},{"internalType":"uint256","name":"_maxwallet","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"changePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}],"name":"changeSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxtxn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxwallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"open","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_ipfstoken","type":"string"}],"name":"setBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalminted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]