This contract's source code is verified! Compiler
0.8.11+commit.d7f03943
File 4 of 8: IERC20Metadata.sol
File 5 of 8: IUniswap.sol
pragma solidity =0.8.11;
interface IUniswapV2Router {
function getAmountsOut(
uint256 amountIn,
address[] memory path
) external view returns (uint256[] memory amounts);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
interface IUniswapV2Factory {
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
}
File 6 of 8: Liquidity.sol
pragma solidity =0.8.11;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.5/contracts/token/ERC20/IERC20.sol";
import "../interfaces/IUniswap.sol";
library Liquidity {
address public constant FACTORY =
0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f;
address public constant ROUTER = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
address public constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
address public constant DEAD_ADDRESS =
0x000000000000000000000000000000000000dEaD;
function swap(
address _tokenIn,
address _tokenOut,
uint256 _amountIn,
uint256 _slippage,
address _to
) internal returns (uint256) {
IERC20(_tokenIn).approve(ROUTER, _amountIn);
address[] memory path;
if (_tokenIn == WETH || _tokenOut == WETH) {
path = new address[](2);
path[0] = _tokenIn;
path[1] = _tokenOut;
} else {
path = new address[](3);
path[0] = _tokenIn;
path[1] = WETH;
path[2] = _tokenOut;
}
uint256 _amountOutMin = (IUniswapV2Router(ROUTER).getAmountsOut(
_amountIn,
path
)[path.length - 1] * (1000 - _slippage)) / 1000;
uint256 balanceBefore = IERC20(_tokenOut).balanceOf(_to);
IUniswapV2Router(ROUTER)
.swapExactTokensForTokensSupportingFeeOnTransferTokens(
_amountIn,
_amountOutMin,
path,
_to,
block.timestamp
);
uint256 balanceAfter = IERC20(_tokenOut).balanceOf(_to);
return balanceAfter - balanceBefore;
}
function getPair(
address _tokenA,
address _tokenB
) internal view returns (address) {
return IUniswapV2Factory(FACTORY).getPair(_tokenA, _tokenB);
}
}
File 8 of 8: RYderOSHI.sol
pragma solidity =0.8.11;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.5/contracts/token/ERC20/ERC20.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.5/contracts/access/Ownable.sol";
import "./library/Liquidity.sol";
contract RYderOSHI is ERC20, Ownable {
address public marketing;
address public cult;
address public vemp;
address public shib;
address public cal;
uint256 public marketingTax;
uint256 public cultTax;
uint256 public vempTax;
uint256 public shibTax;
uint256 public calTax;
uint256 public maxWalletLimit;
uint256 public slippage;
uint256 public maxSwapLimit;
mapping(address => bool) public isWhiteList;
event MarketingAddressUpdated(address newMarketingAddress);
event ShibAddressUpdated(address newShibAddress);
event VEMPAddressUpdated(address newVEMPAddress);
event CULTAddressUpdated(address newCULTAddress);
event CALAddressUpdated(address newCALAddress);
event MaxWalletLimitUpdated(uint256 newMaxWalletLimit);
event MarketingTaxUpdated(uint256 newMarketingTax);
event VEMPTaxUpdated(uint256 newVEMPTax);
event SHIBTaxUpdated(uint256 newSHIBTax);
event CULTTaxUpdated(uint256 newCULTTax);
event CALTaxUpdated(uint256 newCALTax);
event SlippageUpdated(uint256 newSlippage);
event WhiteListAddressEvent(address user, bool status);
event MaxSwapLimitUpdated(uint256 _swapLimit);
constructor(
address _marketingAddress,
address _cult,
address _vemp,
address _shib,
address _cal,
uint256 _maxSwapLimit
) ERC20("RYderOSHI", "RYOSHI") {
marketing = _marketingAddress;
cult = _cult;
vemp = _vemp;
shib = _shib;
cal = _cal;
maxSwapLimit = _maxSwapLimit;
marketingTax = 100;
cultTax = 100;
vempTax = 100;
shibTax = 50;
calTax = 50;
maxWalletLimit = 2;
slippage = 50;
_mint(msg.sender, 810720000 ether);
}
function _transfer(
address from,
address to,
uint256 amount
) internal virtual override {
address pair = Liquidity.getPair(address(this), Liquidity.WETH);
if (
to != pair &&
to != owner() &&
to != address(this) &&
to != marketing &&
!isWhiteList[to]
) {
uint256 validTokenTransfer = ((totalSupply() * maxWalletLimit) /
100) - balanceOf(to);
require(amount <= validTokenTransfer, "Max Limit Reach");
}
if (
from != address(this) &&
from != owner() &&
to != address(this) &&
to != owner() &&
to != marketing &&
!isWhiteList[to] &&
!isWhiteList[from]
) {
uint256 totalTax = vempTax + cultTax + shibTax + marketingTax + calTax;
uint256 feeAmount = (amount * totalTax) / 10000;
super._transfer(from, address(this), feeAmount);
uint _feesOnContract = balanceOf(address(this));
if (from != pair && maxSwapLimit <= _feesOnContract) {
_buyAndBurnToken(vemp, (_feesOnContract * vempTax) / totalTax);
_buyAndBurnToken(cult, (_feesOnContract * cultTax) / totalTax);
_buyAndBurnToken(shib, (_feesOnContract * shibTax) / totalTax);
_buyAndBurnToken(cal, (_feesOnContract * calTax) / totalTax);
super._transfer(
address(this),
marketing,
(_feesOnContract * marketingTax) / totalTax
);
_feesOnContract = 0;
} else {
uint256 validTokenTransfer = ((totalSupply() * maxWalletLimit) /
100) - balanceOf(to);
require(amount <= validTokenTransfer, "Max Limit Reach");
}
return super._transfer(from, to, amount - feeAmount);
} else return super._transfer(from, to, amount);
}
function _buyAndBurnToken(address _tokenOut, uint256 _amountIn) private {
if (_amountIn > 0) {
Liquidity.swap(
address(this),
_tokenOut,
_amountIn,
slippage,
Liquidity.DEAD_ADDRESS
);
}
}
function updateWhitelistAddress(
address _user,
bool _status
) public onlyOwner {
require(isWhiteList[_user] != _status, "Already in same status");
isWhiteList[_user] = _status;
emit WhiteListAddressEvent(_user, _status);
}
function setMarketingAddress(address _marketingAddress) public onlyOwner {
marketing = _marketingAddress;
emit MarketingAddressUpdated(_marketingAddress);
}
function updateShibAddress(address _shibAddress) external onlyOwner {
shib = _shibAddress;
emit ShibAddressUpdated(_shibAddress);
}
function updateVEMPAddress(address _vempAddress) external onlyOwner {
vemp = _vempAddress;
emit VEMPAddressUpdated(_vempAddress);
}
function updateCULTAddress(address _cultAddress) external onlyOwner {
cult = _cultAddress;
emit CULTAddressUpdated(_cultAddress);
}
function updateCALAddress(address _calAddress) external onlyOwner {
cal = _calAddress;
emit CALAddressUpdated(_calAddress);
}
function updateMaxWalletLimit(uint256 _walletLimit) external onlyOwner {
maxWalletLimit = _walletLimit;
emit MaxWalletLimitUpdated(_walletLimit);
}
function updateMarketingTax(uint256 _marketTax) external onlyOwner {
marketingTax = _marketTax;
emit MarketingTaxUpdated(_marketTax);
}
function updateVEMPTax(uint256 _vempTax) external onlyOwner {
vempTax = _vempTax;
emit VEMPTaxUpdated(_vempTax);
}
function updateSHIBTax(uint256 _shibTax) external onlyOwner {
shibTax = _shibTax;
emit SHIBTaxUpdated(_shibTax);
}
function updateCULTTax(uint256 _cultTax) external onlyOwner {
cultTax = _cultTax;
emit CULTTaxUpdated(_cultTax);
}
function updateCALTax(uint256 _calTax) external onlyOwner {
calTax = _calTax;
emit CALTaxUpdated(_calTax);
}
function updateMaxSwapLimit(uint256 _swapLimit) external onlyOwner {
maxSwapLimit = _swapLimit;
emit MaxSwapLimitUpdated(_swapLimit);
}
function updateSlippage(uint256 _slippage) external onlyOwner {
require(_slippage < 1000 && _slippage > 40, "Invalid Slippage");
slippage = _slippage;
emit SlippageUpdated(_slippage);
}
}
{
"compilationTarget": {
"RYderOSHI/RYderOSHI.sol": "RYderOSHI"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
}
[{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"},{"internalType":"address","name":"_cult","type":"address"},{"internalType":"address","name":"_vemp","type":"address"},{"internalType":"address","name":"_shib","type":"address"},{"internalType":"address","name":"_cal","type":"address"},{"internalType":"uint256","name":"_maxSwapLimit","type":"uint256"}],"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":false,"internalType":"address","name":"newCALAddress","type":"address"}],"name":"CALAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newCALTax","type":"uint256"}],"name":"CALTaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newCULTAddress","type":"address"}],"name":"CULTAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newCULTTax","type":"uint256"}],"name":"CULTTaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newMarketingAddress","type":"address"}],"name":"MarketingAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"MarketingTaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_swapLimit","type":"uint256"}],"name":"MaxSwapLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxWalletLimit","type":"uint256"}],"name":"MaxWalletLimitUpdated","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":false,"internalType":"uint256","name":"newSHIBTax","type":"uint256"}],"name":"SHIBTaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newShibAddress","type":"address"}],"name":"ShibAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newSlippage","type":"uint256"}],"name":"SlippageUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newVEMPAddress","type":"address"}],"name":"VEMPAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newVEMPTax","type":"uint256"}],"name":"VEMPTaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"WhiteListAddressEvent","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":[],"name":"cal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cult","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cultTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shib","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shibTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slippage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_calAddress","type":"address"}],"name":"updateCALAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_calTax","type":"uint256"}],"name":"updateCALTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_cultAddress","type":"address"}],"name":"updateCULTAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cultTax","type":"uint256"}],"name":"updateCULTTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketTax","type":"uint256"}],"name":"updateMarketingTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapLimit","type":"uint256"}],"name":"updateMaxSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_walletLimit","type":"uint256"}],"name":"updateMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shibTax","type":"uint256"}],"name":"updateSHIBTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_shibAddress","type":"address"}],"name":"updateShibAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_slippage","type":"uint256"}],"name":"updateSlippage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vempAddress","type":"address"}],"name":"updateVEMPAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_vempTax","type":"uint256"}],"name":"updateVEMPTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateWhitelistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vemp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vempTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]