Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0xA338b5A4bbd8053994BB6c55D770fc2447D66B88
Balance 0 ETH
Nonce 1
Code Size 8140 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

8140 bytes
0x6080604052600436106101bd575f3560e01c806372460e7f116100f25780639d34a30d11610092578063dd62ed3e11610062578063dd62ed3e14610549578063e6b2603b1461058d578063f2fde38b146105a1578063f708a64f146105c0575f80fd5b80639d34a30d146104cd578063a457c2d7146104ec578063a6d3472a1461050b578063a9059cbb1461052a575f80fd5b80638ca39f5e116100cd5780638ca39f5e1461045f5780638da5cb5b1461047e57806395d89b411461049a57806398ed3bbd146104ae575f80fd5b806372460e7f146103ea578063736ce0d4146104215780637daf4b2b14610440575f80fd5b8063313ce5671161015d5780634355855a116101385780634355855a146103415780636ddd17131461036f57806370a08231146103a0578063715018a6146103d4575f80fd5b8063313ce567146102d357806339509351146102f45780633ecad27114610313575f80fd5b8063095ea7b311610198578063095ea7b3146102535780630d61f8371461027257806318160ddd146102a057806323b872dd146102b4575f80fd5b80630445b667146101c85780630634f438146101f057806306fdde0314610232575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b506101dd600a5481565b6040519081526020015b60405180910390f35b3480156101fb575f80fd5b50600b54610222907501000000000000000000000000000000000000000000900460ff1681565b60405190151581526020016101e7565b34801561023d575f80fd5b506102466105df565b6040516101e79190611bb8565b34801561025e575f80fd5b5061022261026d366004611c1c565b61066f565b34801561027d575f80fd5b5061022261028c366004611c46565b60066020525f908152604090205460ff1681565b3480156102ab575f80fd5b506009546101dd565b3480156102bf575f80fd5b506102226102ce366004611c61565b610685565b3480156102de575f80fd5b5060035460405160ff90911681526020016101e7565b3480156102ff575f80fd5b5061022261030e366004611c1c565b6106ee565b34801561031e575f80fd5b5061022261032d366004611c46565b60076020525f908152604090205460ff1681565b34801561034c575f80fd5b5061022261035b366004611c46565b60086020525f908152604090205460ff1681565b34801561037a575f80fd5b50600b546102229074010000000000000000000000000000000000000000900460ff1681565b3480156103ab575f80fd5b506101dd6103ba366004611c46565b6001600160a01b03165f9081526004602052604090205490565b3480156103df575f80fd5b506103e8610723565b005b3480156103f5575f80fd5b50600e54610409906001600160a01b031681565b6040516001600160a01b0390911681526020016101e7565b34801561042c575f80fd5b50600d54610409906001600160a01b031681565b34801561044b575f80fd5b506103e861045a366004611cb3565b6107a6565b34801561046a575f80fd5b50600c54610409906001600160a01b031681565b348015610489575f80fd5b505f546001600160a01b0316610409565b3480156104a5575f80fd5b50610246610850565b3480156104b9575f80fd5b506103e86104c8366004611cec565b61085f565b3480156104d8575f80fd5b506103e86104e7366004611c61565b6108bd565b3480156104f7575f80fd5b50610222610506366004611c1c565b610a26565b348015610516575f80fd5b506103e8610525366004611c46565b610a73565b348015610535575f80fd5b50610222610544366004611c1c565b610ac3565b348015610554575f80fd5b506101dd610563366004611d1f565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610598575f80fd5b506103e8610acf565b3480156105ac575f80fd5b506103e86105bb366004611c46565b610b97565b3480156105cb575f80fd5b506103e86105da366004611cec565b610ca9565b6060600180546105ee90611d56565b80601f016020809104026020016040519081016040528092919081815260200182805461061a90611d56565b80156106655780601f1061063c57610100808354040283529160200191610665565b820191905f5260205f20905b81548152906001019060200180831161064857829003601f168201915b5050505050905090565b5f61067b338484610e2d565b5060015b92915050565b5f610691848484610fb8565b506106e384336106de85604051806060016040528060288152602001611f4a602891396001600160a01b038a165f908152600560209081526040808320338452909152902054919061139f565b610e2d565b5060015b9392505050565b335f8181526005602090815260408083206001600160a01b0387168452909152812054909161067b9185906106de90866113f1565b5f546001600160a01b0316331461079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6107a45f611469565b565b600b546001600160a01b031633146107bc575f80fd5b600b8054600a939093559015157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff9315157401000000000000000000000000000000000000000002939093167fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff90921691909117919091179055565b6060600280546105ee90611d56565b600b546001600160a01b03163314610875575f80fd5b6001600160a01b03919091165f90815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600b546001600160a01b031633146108d3575f80fd5b6040516001600160a01b038381166024830152604482018390525f9190851690606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052516109779190611da7565b5f604051808303815f865af19150503d805f81146109b0576040519150601f19603f3d011682016040523d82523d5f602084013e6109b5565b606091505b5050905080610a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f546f6b656e207061796d656e74206661696c65640000000000000000000000006044820152606401610792565b50505050565b5f61067b33846106de85604051806060016040528060258152602001611f7260259139335f9081526005602090815260408083206001600160a01b038d168452909152902054919061139f565b600b546001600160a01b03163314610a89575f80fd5b600c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f6106e3338484610fb8565b600b546001600160a01b03163314610ae5575f80fd5b6040515f90339047908381818185875af1925050503d805f8114610b24576040519150601f19603f3d011682016040523d82523d5f602084013e610b29565b606091505b5050905080610b94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f546f6b656e207061796d656e74206661696c65640000000000000000000000006044820152606401610792565b50565b5f546001600160a01b03163314610c0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610792565b6001600160a01b038116610ca0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610792565b610b9481611469565b600b546001600160a01b03163314610cbf575f80fd5b8015610d4357600c546040517f14b6ca960000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301525f6024830152909116906314b6ca96906044015f604051808303815f87803b158015610d28575f80fd5b505af1158015610d3a573d5f803e3d5ffd5b50505050610de5565b600c546001600160a01b03166314b6ca9683610d73816001600160a01b03165f9081526004602052604090205490565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015610dce575f80fd5b505af1158015610de0573d5f803e3d5ffd5b505050505b6001600160a01b03919091165f90815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6001600160a01b038316610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610792565b6001600160a01b038216610f58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610792565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b03841615801590610fd957506001600160a01b03831615155b8015610fe457505f82115b610fec575f80fd5b600e5474010000000000000000000000000000000000000000900460ff16156110215761101a8484846114d0565b90506106e7565b305f90815260046020526040902054600a548110801590819061105f5750600e5474010000000000000000000000000000000000000000900460ff16155b801561108357506001600160a01b0386165f9081526007602052604090205460ff16155b80156110a95750600b5474010000000000000000000000000000000000000000900460ff165b80156110cd57506001600160a01b0386165f9081526006602052604090205460ff16155b80156110f157506001600160a01b0385165f9081526006602052604090205460ff16155b156110ff576110ff826115bc565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0389165f9081526004909152919091205461115991869061139f565b6001600160a01b0387165f9081526004602052604081209190915561117e87876116d6565b6111925761118d878787611770565b611194565b845b6001600160a01b0387165f908152600460205260409020549091506111b990826113f1565b6001600160a01b038088165f90815260046020908152604080832094909455918a1681526008909152205460ff1661128957600c546001600160a01b03166314b6ca968861121b816001600160a01b03165f9081526004602052604090205490565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015611276575f80fd5b505af1925050508015611287575060015b505b6001600160a01b0386165f9081526008602052604090205460ff1661134657600c546001600160a01b03166314b6ca96876112d8816001600160a01b03165f9081526004602052604090205490565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015611333575f80fd5b505af1925050508015611344575060015b505b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161138b91815260200190565b60405180910390a3600193505050506106e7565b5f81848411156113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107929190611bb8565b505f6113e88486611def565b95945050505050565b5f806113fd8385611e02565b9050838110156106e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610792565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0386165f90815260049091529182205461152991849061139f565b6001600160a01b038086165f90815260046020526040808220939093559085168152205461155790836113f1565b6001600160a01b038085165f8181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115aa9086815260200190565b60405180910390a35060019392505050565b600e80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055600b547501000000000000000000000000000000000000000000900460ff16156116245750600a545b80156116ab574761163482611864565b5f61163f4783611a1f565b905080156116a857600c5f9054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015611694575f80fd5b505af1935050505080156116a6575060015b505b50505b50600e80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6001600160a01b0382165f9081526006602052604081205460ff168061171357506001600160a01b0382165f9081526006602052604090205460ff165b156117205750600161067f565b6001600160a01b0383165f9081526007602052604090205460ff168061175d57506001600160a01b0382165f9081526007602052604090205460ff165b1561176957505f61067f565b505f61067f565b6001600160a01b0383165f90815260076020526040812054819060ff16156117af576117a860646117a2856003611a60565b90611b14565b90506117e2565b6001600160a01b0384165f9081526007602052604090205460ff16156117e2576117df60646117a2856003611a60565b90505b801561185a57305f9081526004602052604090205461180190826113f1565b305f81815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118519085815260200190565b60405180910390a35b6113e88382611a1f565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061189757611897611e15565b6001600160a01b03928316602091820292909201810191909152600d54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611907573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061192b9190611e42565b8160018151811061193e5761193e611e15565b6001600160a01b039283166020918202929092010152600d546119649130911684610e2d565b600d546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906119b59085905f90869030904290600401611e9f565b5f604051808303815f87803b1580156119cc575f80fd5b505af11580156119de573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611a13929190611eda565b60405180910390a15050565b5f6106e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061139f565b5f825f03611a6f57505f61067f565b5f611a7a8385611efa565b905082611a878583611f11565b146106e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610792565b5f6106e783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611b8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107929190611bb8565b505f6113e88486611f11565b5f5b83811015611bb0578181015183820152602001611b98565b50505f910152565b602081525f8251806020840152611bd6816040850160208701611b96565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6001600160a01b0381168114610b94575f80fd5b5f8060408385031215611c2d575f80fd5b8235611c3881611c08565b946020939093013593505050565b5f60208284031215611c56575f80fd5b81356106e781611c08565b5f805f60608486031215611c73575f80fd5b8335611c7e81611c08565b92506020840135611c8e81611c08565b929592945050506040919091013590565b80358015158114611cae575f80fd5b919050565b5f805f60608486031215611cc5575f80fd5b611cce84611c9f565b925060208401359150611ce360408501611c9f565b90509250925092565b5f8060408385031215611cfd575f80fd5b8235611d0881611c08565b9150611d1660208401611c9f565b90509250929050565b5f8060408385031215611d30575f80fd5b8235611d3b81611c08565b91506020830135611d4b81611c08565b809150509250929050565b600181811c90821680611d6a57607f821691505b602082108103611da1577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f8251611db8818460208701611b96565b9190910192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561067f5761067f611dc2565b8082018082111561067f5761067f611dc2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611e52575f80fd5b81516106e781611c08565b5f8151808452602080850194508084015f5b83811015611e945781516001600160a01b031687529582019590820190600101611e6f565b509495945050505050565b85815284602082015260a060408201525f611ebd60a0830186611e5d565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f611ef26040830184611e5d565b949350505050565b808202811582820484141761067f5761067f611dc2565b5f82611f44577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122012c0cccf1f7213e6d3158e22b6d753503c4c4c97d0d1e1db7403c19883fad45464736f6c63430008150033

Verified Source Code Full Match

Compiler: v0.8.21+commit.d9974bed EVM: shanghai Optimization: Yes (12075 runs)
EAG.sol 472 lines
/*

    
                    ███████  █████   ██████  
                    ██      ██   ██ ██       
                    █████   ███████ ██   ███ 
                    ██      ██   ██ ██    ██ 
                    ███████ ██   ██  ██████  

                    Emerging Assets Group

 Revolutionizing the Trading of Commodities and Alternative Hard Assets
                             
-> Website  : https://www.eag.network/
-> Telegram : https://t.me/EAG_Official

*/

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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 Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

interface IREWARD {
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
}

contract EAG is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Emerging Assets Group"; 
    string private _symbol = "EAG"; 
    uint8 private _decimals = 18; 
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public ischargepair;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isDividendExempt;

    uint256 private _totalSupply = 12_075_000 * 10**_decimals;
    uint256 public swapThreshold = 6000 * 10**_decimals;

    address private deployer;

    bool public swapEnabled = true;
    bool public swapByLimit = true;

    IREWARD public rewardDividend;

    IDexSwapRouter public DexRouter;
    address public DexPair;

    bool inSwap;
    
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier onlyGuard {
        require(msg.sender == deployer);
        _;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        deployer = msg.sender;
        
        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        DexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        DexRouter = _dexRouter;

        ischargepair[address(this)] = true;
        ischargepair[address(0xdead)] = true;
        ischargepair[msg.sender] = true;

        isDividendExempt[DexPair] = true;
        isDividendExempt[msg.sender] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[address(0xdead)] = true;
        isDividendExempt[address(DexRouter)] = true;

        isMarketPair[address(DexPair)] = true;

        _allowances[address(this)][address(DexRouter)] = ~uint256(0);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    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 balanceOf(address account) public view override returns (uint256) {
       return _balances[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;
    }

    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);
    }

     //to recieve ETH from Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0) && recipient != address(0) && amount > 0);
        
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !ischargepair[sender] &&
                !ischargepair[recipient]
                ) {
                swapBack(contractTokenBalance);
            }
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            if(!isDividendExempt[sender]){ try rewardDividend.setShare(sender, balanceOf(sender)) {} catch {} }
            if(!isDividendExempt[recipient]){ try rewardDividend.setShare(recipient, balanceOf(recipient)) {} catch {} }

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(ischargepair[sender] || ischargepair[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(3).div(100);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(3).div(100);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function swapBack(uint contractBalance) internal swapping {

        if(swapByLimit) {
            contractBalance = swapThreshold;
        }

        if(contractBalance == 0) return;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0) {
            try rewardDividend.deposit { value: amountReceived } () {} catch {}
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = DexRouter.WETH();

        _approve(address(this), address(DexRouter), tokenAmount);

        // make the swap
        DexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }
    
    function rescueFunds() external onlyGuard {
        (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
        require(success, 'Token payment failed');
    }

    function clearStuckTokens(address _token, address recipient, uint256 _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function enableChargePair(address _adr,bool _status) external onlyGuard {
        ischargepair[_adr] = _status;
    }

    function setIsDividendExempt(address holder, bool exempt)
        external
        onlyGuard
    {
        if(exempt) {
            rewardDividend.setShare(holder,0);
        }
        else {
            rewardDividend.setShare(holder,balanceOf(holder));
        }
        isDividendExempt[holder] = exempt;
    }

    function setRewardDividend(address _dividend) external onlyGuard {
        rewardDividend = IREWARD(_dividend); 
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapThreshold = _amount;
        swapByLimit = _limited;
    }

}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

}

Read Contract

DexPair 0x72460e7f → address
DexRouter 0x736ce0d4 → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
isDividendExempt 0x4355855a → bool
isMarketPair 0x3ecad271 → bool
ischargepair 0x0d61f837 → bool
name 0x06fdde03 → string
owner 0x8da5cb5b → address
rewardDividend 0x8ca39f5e → address
swapByLimit 0x0634f438 → bool
swapEnabled 0x6ddd1713 → bool
swapThreshold 0x0445b667 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 13 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
clearStuckTokens 0x9d34a30d
address _token
address recipient
uint256 _amount
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
enableChargePair 0x98ed3bbd
address _adr
bool _status
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
renounceOwnership 0x715018a6
No parameters
rescueFunds 0xe6b2603b
No parameters
setIsDividendExempt 0xf708a64f
address holder
bool exempt
setRewardDividend 0xa6d3472a
address _dividend
setSwapBackSettings 0x7daf4b2b
bool _enabled
uint256 _amount
bool _limited
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner

Recent Transactions

No transactions found for this address