Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xADf86E75d8f0F57e0288D0970E7407eaA49b3CAb
Balance 0 ETH
Nonce 1
Code Size 10165 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

10165 bytes
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063518bc278116100f957806383ad799411610097578063a9059cbb11610071578063a9059cbb14610401578063b25332ae14610414578063dd62ed3e1461041d578063fce589d814610463576101c4565b806383ad7994146103dd57806395d89b41146103e6578063a457c2d7146103ee576101c4565b806370d5ae05116100d357806370d5ae0514610351578063735de9f7146103715780637b3a400a146103915780637d459db3146103a4576101c4565b8063518bc27814610315578063622a69c61461033557806370a082311461033e576101c4565b80632d83811911610166578063395093511161014057806339509351146102c957806342966c68146102dc5780634549b039146102ef5780634fbee19314610302576101c4565b80632d83811914610298578063313ce567146102ab57806331a75bd0146102c0576101c4565b806313114a9d116101a257806313114a9d1461021f57806318160ddd1461023157806322d0c30d1461024057806323b872dd14610285576101c4565b8063053ab182146101c957806306fdde03146101de578063095ea7b3146101fc575b600080fd5b6101dc6101d73660046124ed565b61046c565b005b6101e66105b9565b6040516101f39190612538565b60405180910390f35b61020f61020a3660046124c4565b61064b565b60405190151581526020016101f3565b6006545b6040519081526020016101f3565b686c6b935b8bbd400000610223565b6014546102609073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f3565b61020f610293366004612489565b610662565b6102236102a63660046124ed565b6106d8565b60095460405160ff90911681526020016101f3565b61022360065481565b61020f6102d73660046124c4565b61078b565b6101dc6102ea3660046124ed565b6107cf565b6102236102fd366004612505565b61084a565b61020f61031036600461243d565b6108f6565b6011546102609073ffffffffffffffffffffffffffffffffffffffff1681565b61022360055481565b61022361034c36600461243d565b6109a2565b6010546102609073ffffffffffffffffffffffffffffffffffffffff1681565b6013546102609073ffffffffffffffffffffffffffffffffffffffff1681565b6101dc61039f36600461243d565b610a2b565b61020f6103b236600461243d565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b610223600a5481565b6101e6610bf8565b61020f6103fc3660046124c4565b610c07565b61020f61040f3660046124c4565b610c63565b610223600c5481565b61022361042b366004612457565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b610223600b5481565b3360008181526003602052604090205460ff1615610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201527f6869732066756e6374696f6e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600061051c83610c83565b50505050905061056c8160405180606001604052806028815260200161270b6028913973ffffffffffffffffffffffffffffffffffffffff85166000908152602081905260409020549190610cc1565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020556005546105a0908290612637565b6005556006546105b19084906125a9565b600655505050565b6060600780546105c89061264e565b80601f01602080910402602001604051908101604052809291908181526020018280546105f49061264e565b80156106415780601f1061061657610100808354040283529160200191610641565b820191906000526020600020905b81548152906001019060200180831161062457829003601f168201915b5050505050905090565b6000610658338484610d07565b5060015b92915050565b600061066f848484610eba565b6106ce84336106c9856040518060600160405280602881526020016127336028913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526002602090815260408083203384529091529020549190610cc1565b610d07565b5060019392505050565b600060055482111561076c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610508565b60006107766112af565b90506107828382610c70565b9150505b919050565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916106589185906106c99086906125a9565b6107d76112d2565b6107e0336103b2565b1561080d576108083360105473ffffffffffffffffffffffffffffffffffffffff168361131b565b610830565b6108303360105473ffffffffffffffffffffffffffffffffffffffff1683611532565b610847600e54600b55600d54600a55600f54600c55565b50565b6000686c6b935b8bbd4000008311156108bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610508565b816108dd5760006108cf84610c83565b5092945061065c9350505050565b60006108e884610c83565b5091945061065c9350505050565b6000805b601254811015610999578273ffffffffffffffffffffffffffffffffffffffff1660128281548110610955577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415610987576001915050610786565b80610991816126a2565b9150506108fa565b50600092915050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604081205460ff16156109fc575073ffffffffffffffffffffffffffffffffffffffff8116600090815260016020526040902054610786565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205461065c906106d8565b60115473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4f6e6c792063757272656e742061727469737444414f2063616e206368616e6760448201527f65207468652061646472657373000000000000000000000000000000000000006064820152608401610508565b610af181611597565b610afa81611751565b610b026112d2565b601154610b2e9073ffffffffffffffffffffffffffffffffffffffff1682610b29826109a2565b61131b565b610b45600e54600b55600d54600a55600f54600c55565b601154610b679073ffffffffffffffffffffffffffffffffffffffff1661185e565b601154610b899073ffffffffffffffffffffffffffffffffffffffff16611b4f565b601180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f4bac9356b30273cf6c6b56f5f8abce14da2488d36631b85711b455870ab4f8b690600090a250565b6060600880546105c89061264e565b600061065833846106c98560405180606001604052806025815260200161275b6025913933600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8d1684529091529020549190610cc1565b6000610658338484610eba565b6000610c7c82846125c1565b9392505050565b6000806000806000806000610c9788611d7d565b915091506000806000610caa8b85611dd3565b919d909c50959a5093985092965092945050505050565b60008184841115610cff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105089190612538565b505050900390565b73ffffffffffffffffffffffffffffffffffffffff8316610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610508565b73ffffffffffffffffffffffffffffffffffffffff8216610e4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610508565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610f5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610508565b73ffffffffffffffffffffffffffffffffffffffff8216611000576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610508565b60008111611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610508565b600061109b836108f6565b905080806110c3575060115473ffffffffffffffffffffffffffffffffffffffff8581169116145b156110d0576110d06112d2565b73ffffffffffffffffffffffffffffffffffffffff841660009081526003602052604090205460ff16801561112b575073ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604090205460ff16155b156111405761113b848484611e1c565b61128c565b73ffffffffffffffffffffffffffffffffffffffff841660009081526003602052604090205460ff1615801561119b575073ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604090205460ff165b156111ab5761113b848484611532565b73ffffffffffffffffffffffffffffffffffffffff841660009081526003602052604090205460ff16158015611207575073ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604090205460ff16155b156112175761113b848484611f4b565b73ffffffffffffffffffffffffffffffffffffffff841660009081526003602052604090205460ff168015611271575073ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604090205460ff165b156112815761113b84848461131b565b61128c848484611f4b565b80156112a9576112a9600e54600b55600d54600a55600f54600c55565b50505050565b60008060006112bc611fb0565b90925090506112cb8282610c70565b9250505090565b600b541580156112e25750600a54155b80156112ee5750600c54155b156112f857611319565b600b8054600e55600a8054600d55600c8054600f5560009283905590829055555b565b600080600080600061132c86610c83565b945094509450945094506113808660405180606001604052806028815260200161270b6028913973ffffffffffffffffffffffffffffffffffffffff8b166000908152600160205260409020549190610cc1565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061140d8560405180606001604052806028815260200161270b6028913973ffffffffffffffffffffffffffffffffffffffff8b166000908152602081905260409020549190610cc1565b73ffffffffffffffffffffffffffffffffffffffff808a1660009081526020818152604080832094909455918a1681526001909152205461144f9084906125a9565b73ffffffffffffffffffffffffffffffffffffffff8816600090815260016020908152604080832093909355819052205461148b9085906125a9565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020819052604090205581156114c1576114c1868261221f565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161152091815260200190565b60405180910390a35050505050505050565b600080600080600061154386610c83565b9450945094509450945061140d8560405180606001604052806028815260200161270b6028913973ffffffffffffffffffffffffffffffffffffffff8b166000908152602081905260409020549190610cc1565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff1615611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610508565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902054156116a85773ffffffffffffffffffffffffffffffffffffffff8116600090815260208190526040902054611681906106d8565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020555b73ffffffffffffffffffffffffffffffffffffffff16600081815260036020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556004805491820181559091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b61175a816108f6565b156117e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4163636f756e7420697320616c7265616479206578636c756465642066726f6d60448201527f20666565732e00000000000000000000000000000000000000000000000000006064820152608401610508565b601280546001810182556000919091527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff166118ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610508565b60005b600454811015611b4b578173ffffffffffffffffffffffffffffffffffffffff166004828154811061194b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611b39576004805461198390600190612637565b815481106119ba577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602090912001546004805473ffffffffffffffffffffffffffffffffffffffff9092169183908110611a1a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff948516179055918416815260018252604080822082905560039092522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556004805480611adc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055611b4b565b80611b43816126a2565b9150506118f0565b5050565b611b58816108f6565b611bbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4163636f756e742069736e2774206578636c75646564000000000000000000006044820152606401610508565b60005b601254811015611b4b578173ffffffffffffffffffffffffffffffffffffffff1660128281548110611c1c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161415611d6b5760128054611c5490600190612637565b81548110611c8b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000918252602090912001546012805473ffffffffffffffffffffffffffffffffffffffff9092169183908110611ceb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012805480611adc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b80611d75816126a2565b915050611bc1565b6000806000600c54600b54600a54611d9591906125a9565b611d9f91906125a9565b905060006064611daf83876125fa565b611db991906125c1565b90506000611dc78287612637565b94509092505050915091565b600080600080611de16112af565b90506000611def82886125fa565b90506000611dfd83886125fa565b90506000611e0b8284612637565b929992985092965090945050505050565b6000806000806000611e2d86610c83565b94509450945094509450611e818660405180606001604052806028815260200161270b6028913973ffffffffffffffffffffffffffffffffffffffff8b166000908152600160205260409020549190610cc1565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f0e8560405180606001604052806028815260200161270b6028913973ffffffffffffffffffffffffffffffffffffffff8b166000908152602081905260409020549190610cc1565b73ffffffffffffffffffffffffffffffffffffffff808a16600090815260208190526040808220939093559089168152205461148b9085906125a9565b6000806000806000611f5c86610c83565b94509450945094509450611f0e8560405180606001604052806028815260200161270b6028913973ffffffffffffffffffffffffffffffffffffffff8b166000908152602081905260409020549190610cc1565b6005546000908190686c6b935b8bbd400000825b6004548110156121df57826000806004848154811061200c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205411806120b85750816001600060048481548110612084577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902054115b156120d657600554686c6b935b8bbd4000009450945050505061221b565b60008060048381548110612113577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205461214f9084612637565b9250600160006004838154811061218f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020546121cb9083612637565b9150806121d7816126a2565b915050611fc4565b506005546121f690686c6b935b8bbd400000610c70565b82101561221557600554686c6b935b8bbd40000093509350505061221b565b90925090505b9091565b60006064600a548461223191906125fa565b61223b91906125c1565b9050600061224983836125fa565b9050806005546122599190612637565b60055560065461226a9083906125a9565b600655600b5460009060649061228090876125fa565b61228a91906125c1565b9050600061229885836125fa565b60105473ffffffffffffffffffffffffffffffffffffffff166000908152602081905260409020549091506122ce9082906125a9565b6010805473ffffffffffffffffffffffffffffffffffffffff9081166000908152602081815260408083209590955592549091168152600190915220546123169083906125a9565b60105473ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040812091909155600c5460649061235190896125fa565b61235b91906125c1565b9050600061236987836125fa565b60115473ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490915061239f9082906125a9565b6011805473ffffffffffffffffffffffffffffffffffffffff9081166000908152602081815260408083209590955592549091168152600190915220546123e79083906125a9565b60115473ffffffffffffffffffffffffffffffffffffffff166000908152600160205260409020555050505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461078657600080fd5b60006020828403121561244e578081fd5b610c7c82612419565b60008060408385031215612469578081fd5b61247283612419565b915061248060208401612419565b90509250929050565b60008060006060848603121561249d578081fd5b6124a684612419565b92506124b460208501612419565b9150604084013590509250925092565b600080604083850312156124d6578182fd5b6124df83612419565b946020939093013593505050565b6000602082840312156124fe578081fd5b5035919050565b60008060408385031215612517578182fd5b823591506020830135801515811461252d578182fd5b809150509250929050565b6000602080835283518082850152825b8181101561256457858101830151858201604001528201612548565b818111156125755783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600082198211156125bc576125bc6126db565b500190565b6000826125f5577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612632576126326126db565b500290565b600082821015612649576126496126db565b500390565b600181811c9082168061266257607f821691505b6020821081141561269c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156126d4576126d46126db565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfe45524332303a20416d6f756e7420686967686572207468616e2073656e6465722062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206593a9947e3e99e242c2137949c41488ac1fdd05d952e79e6757fa057ec360e464736f6c63430008030033

Verified Source Code Partial Match

Compiler: v0.8.3+commit.8d00100c EVM: istanbul Optimization: Yes (99999 runs)
ApolloInu.sol 442 lines
// SPDX-License-Identifier: MIT


pragma solidity >=0.8.0 <0.9.0;

//Use 0.8.3

library SafeMath {

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }


    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    
}

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 IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

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

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



contract ApolloInu is IERC20, Context {
    using SafeMath for uint256;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcludedFromReflection;
    address[] private _excludedFromReflection;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 2 * 10**12 * 10**9;
    uint256 public rTotal = (MAX - (MAX % _tTotal));
    uint256 public tFeeTotal;

    string private _name = 'Apollo Inu';
    string private _symbol = 'APOLLO';
    uint8 private _decimals = 9;
    
    uint256 public reflectionFee = 3;
    uint256 public burnFee = 2;
    uint256 public artistFee = 1;
    
    uint256 private _previousReflectionFee = 0;
    uint256 private _previousBurnFee = 0;
    uint256 private _previousArtistFee = 0;
    
    address public burnAddress = address(0);
    address public artistDAO;
    
    address[] private _excludedFromFees;

    IUniswapV2Router02 public uniswapRouter;
    address public ethPair;
    
    event newDaoAddress(address indexed newDAO);

    constructor () {
        _rOwned[_msgSender()] = rTotal;

        uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        IUniswapV2Factory factory = IUniswapV2Factory(uniswapRouter.factory());
        ethPair = factory.createPair(address(this),uniswapRouter.WETH());

        artistDAO = _msgSender();
        
        excludeAccountFromReflection(ethPair);
        excludeAccountFromReflection(burnAddress);
        excludeAccountFromReflection(address(this));
        excludeAccountFromReflection(artistDAO);

        excludeFromFees(burnAddress);
        excludeFromFees(artistDAO);
        
        
        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 pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcludedFromReflection[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] + 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 isExcludedFromReflection(address account) public view returns (bool) {
        return _isExcludedFromReflection[account];
    }

    function totalFees() public view returns (uint256) {
        return tFeeTotal;
    }

    function reflect(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcludedFromReflection[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount, "ERC20: Amount higher than sender balance");
        rTotal = rTotal - rAmount;
        tFeeTotal = tFeeTotal + (tAmount);
    }

    function burn(uint256 burnAmount) external {
        removeAllFee();
        if(isExcludedFromReflection(_msgSender())) {
            _transferBothExcluded(_msgSender(), burnAddress, burnAmount);
        } else {
            _transferToExcluded(_msgSender(), burnAddress, burnAmount);
        }
        restoreAllFee();
    }

    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 excludeAccountFromReflection(address account) private {
        require(!_isExcludedFromReflection[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcludedFromReflection[account] = true;
        _excludedFromReflection.push(account);
    }

    function includeAccount(address account) private {
        require(_isExcludedFromReflection[account], "Account is already excluded");
        for (uint256 i = 0; i < _excludedFromReflection.length; i++) {
            if (_excludedFromReflection[i] == account) {
                _excludedFromReflection[i] = _excludedFromReflection[_excludedFromReflection.length - 1];
                _tOwned[account] = 0;
                _isExcludedFromReflection[account] = false;
                _excludedFromReflection.pop();
                break;
            }
        }
    }

    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");
        
        bool recipientExcludedFromFees = isExcludedFromFees(recipient);
        if(recipientExcludedFromFees || (sender == artistDAO)){
            removeAllFee();
        }
        
        if (_isExcludedFromReflection[sender] && !_isExcludedFromReflection[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcludedFromReflection[sender] && _isExcludedFromReflection[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcludedFromReflection[sender] && !_isExcludedFromReflection[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcludedFromReflection[sender] && _isExcludedFromReflection[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }

        if(recipientExcludedFromFees) {
            restoreAllFee();
        }
        
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tFeeAmount, uint256 currentRate) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount, "ERC20: Amount higher than sender balance");
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;       
        if(tFeeAmount > 0) {
            _handleFees(tAmount, currentRate);
        }
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tFeeAmount, uint256 currentRate) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount, "ERC20: Amount higher than sender balance");
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;           
        if(tFeeAmount > 0) {
            _handleFees(tAmount, currentRate);
        }

        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tFeeAmount, uint256 currentRate) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount, "ERC20: Amount higher than sender balance");
        _rOwned[sender] = _rOwned[sender].sub(rAmount, "ERC20: Amount higher than sender balance");
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;   
        if(tFeeAmount > 0) {
            _handleFees(tAmount, currentRate);
        }
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tFeeAmount, uint256 currentRate) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount, "ERC20: Amount higher than sender balance");
        _rOwned[sender] = _rOwned[sender].sub(rAmount, "ERC20: Amount higher than sender balance");
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
        if(tFeeAmount > 0) {
            _handleFees(tAmount, currentRate);
        }
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
    function _handleFees(uint256 tAmount, uint256 currentRate) private {
        uint256 tReflection = tAmount * reflectionFee / 100;
        uint256 rReflection = tReflection * currentRate;
        rTotal = rTotal - rReflection;
        tFeeTotal = tFeeTotal + tReflection;
        
        uint256 tBurn = tAmount * burnFee / 100;
        uint256 rBurn = tBurn * currentRate;
        _rOwned[burnAddress] = _rOwned[burnAddress] + rBurn;
        _tOwned[burnAddress] = _tOwned[burnAddress] + tBurn;
        
        uint256 tArtist = tAmount * artistFee / 100;
        uint256 rArtist = tArtist * currentRate;
        _rOwned[artistDAO] = _rOwned[artistDAO] + rArtist;
        _tOwned[artistDAO] = _tOwned[artistDAO] + tArtist;
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFeeAmount) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 currentRate) = _getRValues(tAmount, tFeeAmount);
        return (rAmount, rTransferAmount, tTransferAmount, tFeeAmount, currentRate);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 totalFee = reflectionFee + burnFee + artistFee;
        uint256 tFees = tAmount * totalFee / 100;
        uint256 tTransferAmount = tAmount - tFees;
        return (tTransferAmount, tFees);
    }

    function _getRValues(uint256 tAmount, uint256 tFees) private view returns (uint256, uint256, uint256) {
        uint256 currentRate = _getRate();
        uint256 rAmount = tAmount * currentRate;
        uint256 rFees = tFees * currentRate;
        uint256 rTransferAmount = rAmount - rFees;
        return (rAmount, rTransferAmount, currentRate);
    }

    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 < _excludedFromReflection.length; i++) {
            if (_rOwned[_excludedFromReflection[i]] > rSupply || _tOwned[_excludedFromReflection[i]] > tSupply) return (rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excludedFromReflection[i]];
            tSupply = tSupply - _tOwned[_excludedFromReflection[i]];
        }
        if (rSupply < rTotal.div(_tTotal)) return (rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    
    function isExcludedFromFees(address user) public view returns (bool) {
        for(uint256 i = 0; i < _excludedFromFees.length; i++){
            if(_excludedFromFees[i] == user) {
                return true;
            }
        }
        return false;
    }
    
    function excludeFromFees(address newUser) private {
        require(!isExcludedFromFees(newUser), "Account is already excluded from fees.");
        _excludedFromFees.push(newUser);
    }
    
    function removeFromExcludeFromFees(address account) private {
        require(isExcludedFromFees(account), "Account isn't excluded");
        for (uint256 i = 0; i < _excludedFromFees.length; i++) {
            if (_excludedFromFees[i] == account) {
                _excludedFromFees[i] = _excludedFromFees[_excludedFromFees.length - 1];
                _excludedFromFees.pop();
                break;
            }
        }
    }

    
    function removeAllFee() private {
        if(burnFee == 0 && reflectionFee == 0 && artistFee ==0) return;
        
        _previousBurnFee = burnFee;
        _previousReflectionFee = reflectionFee;
        _previousArtistFee = artistFee;
        
        burnFee = 0;
        reflectionFee = 0;
        artistFee = 0;
    }
    
    function restoreAllFee() private {
        burnFee = _previousBurnFee;
        reflectionFee = _previousReflectionFee;
        artistFee = _previousArtistFee;
    }

    function changeArtistAddress(address newAddress) external {
        require(_msgSender() == artistDAO , "Only current artistDAO can change the address");
        excludeAccountFromReflection(newAddress);
        excludeFromFees(newAddress);
        removeAllFee();
        _transferBothExcluded(artistDAO, newAddress, balanceOf(artistDAO));
        restoreAllFee();

        includeAccount(artistDAO);
        removeFromExcludeFromFees(artistDAO);


        artistDAO = newAddress;
        emit newDaoAddress(newAddress);
    }



    
    
}

Read Contract

allowance 0xdd62ed3e → uint256
artistDAO 0x518bc278 → address
artistFee 0xb25332ae → uint256
balanceOf 0x70a08231 → uint256
burnAddress 0x70d5ae05 → address
burnFee 0xfce589d8 → uint256
decimals 0x313ce567 → uint8
ethPair 0x22d0c30d → address
isExcludedFromFees 0x4fbee193 → bool
isExcludedFromReflection 0x7d459db3 → bool
name 0x06fdde03 → string
rTotal 0x622a69c6 → uint256
reflectionFee 0x83ad7994 → uint256
reflectionFromToken 0x4549b039 → uint256
symbol 0x95d89b41 → string
tFeeTotal 0x31a75bd0 → uint256
tokenFromReflection 0x2d838119 → uint256
totalFees 0x13114a9d → uint256
totalSupply 0x18160ddd → uint256
uniswapRouter 0x735de9f7 → address

Write Contract 8 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
burn 0x42966c68
uint256 burnAmount
changeArtistAddress 0x7b3a400a
address newAddress
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
reflect 0x053ab182
uint256 tAmount
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address