This contract's source code is verified! Compiler
0.6.12+commit.27d51765
File 1 of 9: Address.sol
pragma solidity ^0.6.12;
library Address {
function isContract (address account ) internal view returns (bool ) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 ;
assembly { codehash := extcodehash (account) }
return (codehash ! = accountHash & & codehash ! = 0x0 );
}
function sendValue (address payable recipient, uint256 amount ) internal {
require (address (this ).balance > = amount, "Address: insufficient balance" );
(bool success, ) = recipient.call { value : amount }("" );
require (success, "Address: unable to send value, recipient may have reverted" );
}
function functionCall (address target, bytes memory data ) internal returns (bytes memory ) {
return functionCall(target, data, "Address: low-level call failed" );
}
function functionCall (address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory ) {
return _functionCallWithValue(target, data, 0 , errorMessage);
}
function functionCallWithValue (address target, bytes memory data, uint256 value ) internal returns (bytes memory ) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed" );
}
function functionCallWithValue (address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory ) {
require (address (this ).balance > = value, "Address: insufficient balance for call" );
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue (address target, bytes memory data, uint256 weiValue, string memory errorMessage ) private returns (bytes memory ) {
require (isContract(target), "Address: call to non-contract" );
(bool success, bytes memory returndata) = target.call { value : weiValue }(data);
if (success) {
return returndata;
} else {
if (returndata.length > 0 ) {
assembly {
let returndata_size := mload (returndata)
revert (add (32 , returndata), returndata_size)
}
} else {
revert (errorMessage);
}
}
}
} File 2 of 9: Context.sol
pragma solidity ^0.6.12;
abstract contract Context {
function _msgSender ( ) internal view virtual returns (address payable ) {
return msg .sender ;
}
}
File 3 of 9: IERC20.sol
pragma solidity ^0.6.12;
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 ) ;
} File 4 of 9: IUniswapV2Factory.sol
pragma solidity ^0.6.12;
interface IUniswapV2Factory {
function createPair (address tokenA, address tokenB ) external returns (address pair ) ;
} File 5 of 9: IUniswapV2Pair.sol
pragma solidity >=0.5.0;
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 ;
} File 6 of 9: IUniswapV2Router02.sol
pragma solidity >=0.6.2;
interface IUniswapV2Router02 {
function factory ( ) external pure returns (address ) ;
function WETH ( ) external pure returns (address ) ;
function swapExactTokensForETHSupportingFeeOnTransferTokens (uint256 amountIn, uint256 amountOutMin, address [] calldata path, address to, uint256 deadline ) external ;
function addLiquidityETH (address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity ) ;
} File 7 of 9: Ownable.sol
pragma solidity ^0.6.12;
import "./Context.sol" ;
contract Ownable is Context {
address private _owner;
address private _previousOwner;
event OwnershipTransferred (address indexed previousOwner, address indexed newOwner ) ;
constructor ( ) internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address (0 ), msgSender);
}
function owner ( ) public view returns (address ) {
return _owner;
}
modifier onlyOwner ( ) {
require (_owner = = _msgSender(), "Ownable: caller is not the owner" );
_ ;
}
function renounceOwnership ( ) public virtual onlyOwner {
emit OwnershipTransferred(_owner, address (0 ));
_owner = address (0 );
}
function transferOwnership (address newOwner ) public virtual onlyOwner {
require (newOwner ! = address (0 ), "Ownable: new owner is the zero address" );
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
} File 8 of 9: SafeMath.sol
pragma solidity ^0.6.12;
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;
}
} File 9 of 9: contract.sol
pragma solidity ^0.6.12;
import "./IERC20.sol" ;
import "./SafeMath.sol" ;
import "./Address.sol" ;
import "./Ownable.sol" ;
import "./IUniswapV2Pair.sol" ;
import "./IUniswapV2Factory.sol" ;
import "./IUniswapV2Router02.sol" ;
import "./Context.sol" ;
contract BeastToken is Context , IERC20 , Ownable {
using SafeMath for uint256 ;
using Address for address ;
mapping (address = > uint256 ) private _rOwned;
mapping (address = > uint256 ) private _tOwned;
mapping (address = > mapping (address = > uint256 )) private _allowances;
mapping (address = > bool ) private _isExcludedFromFee;
mapping (address = > bool ) private _isExcluded;
address [] private _excluded;
uint256 private constant MAX = ~ uint256 (0 );
uint256 private _tTotal = 1000000000000 * 10 * * 8 ;
uint256 private _rTotal = (MAX - (MAX % _tTotal));
uint256 private _tFeeTotal;
string private _name = 'Beast Token' ;
string private _symbol = 'BEAST' ;
uint8 private _decimals = 9 ;
uint256 private _redistributionFee = 3 ;
uint256 private _beastFee = 10 ;
uint256 private _previousTaxFee = _redistributionFee;
uint256 private _previousbeastFee = _beastFee;
address payable public _beastWalletAddress;
IUniswapV2Router02 public immutable uniswapV2Router;
address public immutable uniswapV2Pair;
bool private inSwap = false ;
bool private feeEnabled = false ;
modifier lockTheSwap {
inSwap = true ;
_ ;
inSwap = false ;
}
constructor (address payable beastWalletAddress ) public {
_beastWalletAddress = beastWalletAddress;
_rOwned[_msgSender()] = _rTotal;
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D );
uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address (this ), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
_isExcludedFromFee[owner()] = true ;
_isExcludedFromFee[address (this )] = true ;
_isExcludedFromFee[_beastWalletAddress] = true ;
emit Transfer(address (0 ), _msgSender(), _tTotal);
}
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 _tTotal;
}
function balanceOf (address account ) public view override returns (uint256 ) {
if (_isExcluded[account]) return _tOwned[account];
return tokenFromReflection(_rOwned[account]);
}
function transfer (address recipient, uint256 amount ) public override returns (bool ) {
_transfer(_msgSender(), recipient, amount);
return true ;
}
function allowance (address owner, address spender ) public view override returns (uint256 ) {
return _allowances[owner][spender];
}
function approve (address spender, uint256 amount ) public override returns (bool ) {
_approve(_msgSender(), spender, amount);
return true ;
}
function transferFrom (address sender, address recipient, uint256 amount ) public override returns (bool ) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance" ));
return true ;
}
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 ;
}
function isExcluded (address account ) public view returns (bool ) {
return _isExcluded[account];
}
function setExcludeFromFee (address account, bool excluded ) external onlyOwner ( ) {
_isExcludedFromFee[account] = excluded;
}
function totalFees ( ) public view returns (uint256 ) {
return _tFeeTotal;
}
function deliver (uint256 tAmount ) public {
address sender = _msgSender();
require (! _isExcluded[sender], "Excluded addresses cannot call this function" );
(uint256 rAmount,,,,,) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rTotal = _rTotal.sub(rAmount);
_tFeeTotal = _tFeeTotal.add(tAmount);
}
function reflectionFromToken (uint256 tAmount, bool deductTransferFee ) public view returns (uint256 ) {
require (tAmount < = _tTotal, "Amount must be less than supply" );
if (! deductTransferFee) {
(uint256 rAmount,,,,,) = _getValues(tAmount);
return rAmount;
} else {
(,uint256 rTransferAmount,,,,) = _getValues(tAmount);
return rTransferAmount;
}
}
function tokenFromReflection (uint256 rAmount ) public view returns (uint256 ) {
require (rAmount < = _rTotal, "Amount must be less than total reflections" );
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function excludeAccount (address account ) external onlyOwner ( ) {
require (account ! = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D , 'We can not exclude Uniswap router.' );
require (! _isExcluded[account], "Account is already excluded" );
if (_rOwned[account] > 0 ) {
_tOwned[account] = tokenFromReflection(_rOwned[account]);
}
_isExcluded[account] = true ;
_excluded.push (account);
}
function includeAccount (address account ) external onlyOwner ( ) {
require (_isExcluded[account], "Account is already excluded" );
for (uint256 i = 0 ; i < _excluded.length ; i+ + ) {
if (_excluded[i] = = account) {
_excluded[i] = _excluded[_excluded.length - 1 ];
_tOwned[account] = 0 ;
_isExcluded[account] = false ;
_excluded.pop ();
break ;
}
}
}
function removeAllFee ( ) private {
if (_redistributionFee = = 0 & & _beastFee = = 0 ) return ;
_previousTaxFee = _redistributionFee;
_previousbeastFee = _beastFee;
_redistributionFee = 0 ;
_beastFee = 0 ;
}
function restoreAllFee ( ) private {
_redistributionFee = _previousTaxFee;
_beastFee = _previousbeastFee;
}
function isExcludedFromFee (address account ) public view returns (bool ) {
return _isExcludedFromFee[account];
}
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 sender, address recipient, uint256 amount ) private {
require (sender ! = address (0 ), "ERC20: transfer from the zero address" );
require (recipient ! = address (0 ), "ERC20: transfer to the zero address" );
require (amount > 0 , "Transfer amount must be greater than zero" );
if (! _isExcludedFromFee[sender]) {
uint256 contractTokenBalance = balanceOf(address (this ));
if (! inSwap & & feeEnabled & & sender ! = uniswapV2Pair & & recipient ! = address (0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D )) {
swapTokensForEth(contractTokenBalance);
uint256 contractETHBalance = address (this ).balance ;
if (contractETHBalance > 0 ) {
sendETHToBeast(address (this ).balance );
}
}
}
bool takeFee = true ;
if (_isExcludedFromFee[sender] | | _isExcludedFromFee[recipient]){
takeFee = false ;
}
_tokenTransfer(sender,recipient,amount,takeFee);
}
function swapTokensForEth (uint256 tokenAmount ) private lockTheSwap {
address [] memory path = new address [](2 );
path[0 ] = address (this );
path[1 ] = uniswapV2Router.WETH();
_approve(address (this ), address (uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0 , path, address (this ), block .timestamp );
}
function sendETHToBeast (uint256 amount ) private {
_beastWalletAddress.transfer (amount);
}
function manualSwap ( ) external onlyOwner ( ) {
uint256 contractBalance = balanceOf(address (this ));
swapTokensForEth(contractBalance);
}
function manualSend ( ) external onlyOwner ( ) {
uint256 contractETHBalance = address (this ).balance ;
sendETHToBeast(contractETHBalance);
}
function setFeeEnabled (bool enabled ) external onlyOwner ( ) {
feeEnabled = enabled;
}
function _tokenTransfer (address sender, address recipient, uint256 amount, bool takeFee ) private {
if (! takeFee) removeAllFee();
if (_isExcluded[sender] & & ! _isExcluded[recipient]) {
_transferFromExcluded(sender, recipient, amount);
} else if (! _isExcluded[sender] & & _isExcluded[recipient]) {
_transferToExcluded(sender, recipient, amount);
} else if (! _isExcluded[sender] & & ! _isExcluded[recipient]) {
_transferStandard(sender, recipient, amount);
} else if (_isExcluded[sender] & & _isExcluded[recipient]) {
_transferBothExcluded(sender, recipient, amount);
} else {
_transferStandard(sender, recipient, amount);
}
if (! takeFee) restoreAllFee();
}
function _transferStandard (address sender, address recipient, uint256 tAmount ) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBeast) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeBeast(tBeast);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferToExcluded (address sender, address recipient, uint256 tAmount ) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBeast) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeBeast(tBeast);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferFromExcluded (address sender, address recipient, uint256 tAmount ) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBeast) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeBeast(tBeast);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferBothExcluded (address sender, address recipient, uint256 tAmount ) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBeast) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_takeBeast(tBeast);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _takeBeast (uint256 tBeast ) private {
uint256 currentRate = _getRate();
uint256 rBeast = tBeast.mul(currentRate);
_rOwned[address (this )] = _rOwned[address (this )].add(rBeast);
if (_isExcluded[address (this )])
_tOwned[address (this )] = _tOwned[address (this )].add(tBeast);
}
function _reflectFee (uint256 rFee, uint256 tFee ) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
receive ( ) external payable {}
function _getValues (uint256 tAmount ) private view returns (uint256 , uint256 , uint256 , uint256 , uint256 , uint256 ) {
(uint256 tTransferAmount, uint256 tFee, uint256 tBeast) = _getTValues(tAmount, _redistributionFee, _beastFee);
uint256 currentRate = _getRate();
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBeast);
}
function _getTValues (uint256 tAmount, uint256 redistributionFee, uint256 beastFee ) private pure returns (uint256 , uint256 , uint256 ) {
uint256 tFee = tAmount.mul(redistributionFee).div(100 );
uint256 tBeast = tAmount.mul(beastFee).div(100 );
uint256 tTransferAmount = tAmount.sub(tFee).sub(tBeast);
return (tTransferAmount, tFee, tBeast);
}
function _getRValues (uint256 tAmount, uint256 tFee, uint256 currentRate ) private pure returns (uint256 , uint256 , uint256 ) {
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee);
return (rAmount, rTransferAmount, rFee);
}
function _getRate ( ) private view returns (uint256 ) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply ( ) private view returns (uint256 , uint256 ) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
for (uint256 i = 0 ; i < _excluded.length ; i+ + ) {
if (_rOwned[_excluded[i]] > rSupply | | _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
rSupply = rSupply.sub(_rOwned[_excluded[i]]);
tSupply = tSupply.sub(_tOwned[_excluded[i]]);
}
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
function _setBeastWallet (address payable beastWalletAddress ) external onlyOwner ( ) {
require (beastWalletAddress ! = address (0 ), "Ownable: Beast Wallet is the zero address" );
_beastWalletAddress = beastWalletAddress;
}
}{
"compilationTarget" : {
"contract.sol" : "BeastToken"
} ,
"evmVersion" : "istanbul" ,
"libraries" : { } ,
"metadata" : {
"bytecodeHash" : "ipfs"
} ,
"optimizer" : {
"enabled" : false ,
"runs" : 200
} ,
"remappings" : [ ]
} [{"inputs":[{"internalType":"address payable","name":"beastWalletAddress","type":"address"}],"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":[],"name":"_beastWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"beastWalletAddress","type":"address"}],"name":"_setBeastWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"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":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"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":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]