Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0x385d65Ed9241E415cFC689C3e0BCf5aB2f0505c2
Balance 0.003913 ETH ($7.74)
Nonce 1
Code Size 8472 bytes
Indexed Transactions 0 (1 on-chain, 1.2% indexed)
External Etherscan · Sourcify

Contract Bytecode

8472 bytes
0x6080604052600436106101185760003560e01c8063893c9f2b116100a0578063a9059cbb11610064578063a9059cbb1461038d578063dd62ed3e146103ca578063ec44acf214610407578063f2fde38b14610432578063f887ea401461045b5761011f565b8063893c9f2b146102cc5780638a8c523c146102f55780638da5cb5b1461030c57806395d89b4114610337578063a8aa1b31146103625761011f565b806323b872dd116100e757806323b872dd146101d3578063313ce56714610210578063571ac8b01461023b57806370a0823114610278578063715018a6146102b55761011f565b806306f200031461012457806306fdde0314610140578063095ea7b31461016b57806318160ddd146101a85761011f565b3661011f57005b600080fd5b61013e600480360381019061013991906117a8565b610486565b005b34801561014c57600080fd5b5061015561099a565b6040516101629190611865565b60405180910390f35b34801561017757600080fd5b50610192600480360381019061018d91906118bd565b6109d7565b60405161019f9190611918565b60405180910390f35b3480156101b457600080fd5b506101bd610ac9565b6040516101ca9190611942565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f5919061195d565b610aec565b6040516102079190611918565b60405180910390f35b34801561021c57600080fd5b50610225610ce7565b60405161023291906119cc565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d91906117a8565b610cf0565b60405161026f9190611918565b60405180910390f35b34801561028457600080fd5b5061029f600480360381019061029a91906117a8565b610d1e565b6040516102ac9190611942565b60405180910390f35b3480156102c157600080fd5b506102ca610d67565b005b3480156102d857600080fd5b506102f360048036038101906102ee91906119e7565b610eba565b005b34801561030157600080fd5b5061030a610fa0565b005b34801561031857600080fd5b506103216110a2565b60405161032e9190611a23565b60405180910390f35b34801561034357600080fd5b5061034c6110cb565b6040516103599190611865565b60405180910390f35b34801561036e57600080fd5b50610377611108565b6040516103849190611a23565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906118bd565b61112e565b6040516103c19190611918565b60405180910390f35b3480156103d657600080fd5b506103f160048036038101906103ec9190611a3e565b611143565b6040516103fe9190611942565b60405180910390f35b34801561041357600080fd5b5061041c6111ca565b6040516104299190611918565b60405180910390f35b34801561043e57600080fd5b50610459600480360381019061045491906117a8565b6111dd565b005b34801561046757600080fd5b5061047061139e565b60405161047d9190611add565b60405180910390f35b61048e6113c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461051b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051290611b44565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ed9190611b79565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a9190611b79565b6040518363ffffffff1660e01b81526004016106b7929190611ba6565b6020604051808303816000875af11580156106d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fa9190611b79565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6107489190611d31565b629896806107569190611d7c565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061084130610d1e565b60008061084c6110a2565b426040518863ffffffff1660e01b815260040161086e96959493929190611df9565b60606040518083038185885af115801561088c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108b19190611e6f565b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610953929190611ec2565b6020604051808303816000875af1158015610972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109969190611f17565b5050565b60606040518060400160405280600c81526020017f4d6f6c6c617273546f6b656e0000000000000000000000000000000000000000815250905090565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ab79190611942565b60405180910390a36001905092915050565b60006009600a610ad99190611d31565b62989680610ae79190611d7c565b905090565b60006009600a610afc9190611d31565b62989680610b0a9190611d7c565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cd357610c52826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113cc9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cde848484611421565b90509392505050565b60006009905090565b6000610d17826009600a610d049190611d31565b62989680610d129190611d7c565b6109d7565b9050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d6f6113c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390611b44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ec26113c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4690611b44565b60405180910390fd5b610f576110a2565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610f9c573d6000803e3d6000fd5b5050565b610fa86113c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c90611b44565b60405180910390fd5b600560009054906101000a900460ff1615611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c90611f90565b60405180910390fd5b6001600560006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4d4f4c4c41525300000000000000000000000000000000000000000000000000815250905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061113b338484611421565b905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900460ff1681565b6111e56113c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611272576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126990611b44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d890612022565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b6000838311158290611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b9190611865565b60405180910390fd5b5082840390509392505050565b600061142b6110a2565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461155e57600560009054906101000a900460ff1661155d578373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561151d57508273ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61155c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115539061208e565b60405180910390fd5b5b5b6115e7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113cc9092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061167c82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172f90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161171c9190611942565b60405180910390a3600190509392505050565b6000818361173d91906120ae565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117758261174a565b9050919050565b6117858161176a565b811461179057600080fd5b50565b6000813590506117a28161177c565b92915050565b6000602082840312156117be576117bd611745565b5b60006117cc84828501611793565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561180f5780820151818401526020810190506117f4565b60008484015250505050565b6000601f19601f8301169050919050565b6000611837826117d5565b61184181856117e0565b93506118518185602086016117f1565b61185a8161181b565b840191505092915050565b6000602082019050818103600083015261187f818461182c565b905092915050565b6000819050919050565b61189a81611887565b81146118a557600080fd5b50565b6000813590506118b781611891565b92915050565b600080604083850312156118d4576118d3611745565b5b60006118e285828601611793565b92505060206118f3858286016118a8565b9150509250929050565b60008115159050919050565b611912816118fd565b82525050565b600060208201905061192d6000830184611909565b92915050565b61193c81611887565b82525050565b60006020820190506119576000830184611933565b92915050565b60008060006060848603121561197657611975611745565b5b600061198486828701611793565b935050602061199586828701611793565b92505060406119a6868287016118a8565b9150509250925092565b600060ff82169050919050565b6119c6816119b0565b82525050565b60006020820190506119e160008301846119bd565b92915050565b6000602082840312156119fd576119fc611745565b5b6000611a0b848285016118a8565b91505092915050565b611a1d8161176a565b82525050565b6000602082019050611a386000830184611a14565b92915050565b60008060408385031215611a5557611a54611745565b5b6000611a6385828601611793565b9250506020611a7485828601611793565b9150509250929050565b6000819050919050565b6000611aa3611a9e611a998461174a565b611a7e565b61174a565b9050919050565b6000611ab582611a88565b9050919050565b6000611ac782611aaa565b9050919050565b611ad781611abc565b82525050565b6000602082019050611af26000830184611ace565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611b2e6020836117e0565b9150611b3982611af8565b602082019050919050565b60006020820190508181036000830152611b5d81611b21565b9050919050565b600081519050611b738161177c565b92915050565b600060208284031215611b8f57611b8e611745565b5b6000611b9d84828501611b64565b91505092915050565b6000604082019050611bbb6000830185611a14565b611bc86020830184611a14565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115611c5557808604811115611c3157611c30611bcf565b5b6001851615611c405780820291505b8081029050611c4e85611bfe565b9450611c15565b94509492505050565b600082611c6e5760019050611d2a565b81611c7c5760009050611d2a565b8160018114611c925760028114611c9c57611ccb565b6001915050611d2a565b60ff841115611cae57611cad611bcf565b5b8360020a915084821115611cc557611cc4611bcf565b5b50611d2a565b5060208310610133831016604e8410600b8410161715611d005782820a905083811115611cfb57611cfa611bcf565b5b611d2a565b611d0d8484846001611c0b565b92509050818404811115611d2457611d23611bcf565b5b81810290505b9392505050565b6000611d3c82611887565b9150611d47836119b0565b9250611d747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c5e565b905092915050565b6000611d8782611887565b9150611d9283611887565b9250828202611da081611887565b91508282048414831517611db757611db6611bcf565b5b5092915050565b6000819050919050565b6000611de3611dde611dd984611dbe565b611a7e565b611887565b9050919050565b611df381611dc8565b82525050565b600060c082019050611e0e6000830189611a14565b611e1b6020830188611933565b611e286040830187611dea565b611e356060830186611dea565b611e426080830185611a14565b611e4f60a0830184611933565b979650505050505050565b600081519050611e6981611891565b92915050565b600080600060608486031215611e8857611e87611745565b5b6000611e9686828701611e5a565b9350506020611ea786828701611e5a565b9250506040611eb886828701611e5a565b9150509250925092565b6000604082019050611ed76000830185611a14565b611ee46020830184611933565b9392505050565b611ef4816118fd565b8114611eff57600080fd5b50565b600081519050611f1181611eeb565b92915050565b600060208284031215611f2d57611f2c611745565b5b6000611f3b84828501611f02565b91505092915050565b7f416c726561647920656e61626c65640000000000000000000000000000000000600082015250565b6000611f7a600f836117e0565b9150611f8582611f44565b602082019050919050565b60006020820190508181036000830152611fa981611f6d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061200c6026836117e0565b915061201782611fb0565b604082019050919050565b6000602082019050818103600083015261203b81611fff565b9050919050565b7f54726164696e672069732064697361626c650000000000000000000000000000600082015250565b60006120786012836117e0565b915061208382612042565b602082019050919050565b600060208201905081810360008301526120a78161206b565b9050919050565b60006120b982611887565b91506120c483611887565b92508282019050808211156120dc576120db611bcf565b5b9291505056fea26469706673582212201e485921986daad33b319c17085b78fe9796792a6a554be2d2e1dd453b33ac5c64736f6c63430008110033

Verified Source Code Partial Match

Compiler: v0.8.17+commit.8df45f5f EVM: london Optimization: No
MOLLARS.sol 396 lines
/*
 /$$      /$$  /$$$$$$  /$$       /$$        /$$$$$$  /$$$$$$$   /$$$$$$ 
| $$$    /$$$ /$$__  $$| $$      | $$       /$$__  $$| $$__  $$ /$$__  $$
| $$$$  /$$$$| $$  \ $$| $$      | $$      | $$  \ $$| $$  \ $$| $$  \__/
| $$ $$/$$ $$| $$  | $$| $$      | $$      | $$$$$$$$| $$$$$$$/|  $$$$$$ 
| $$  $$$| $$| $$  | $$| $$      | $$      | $$__  $$| $$__  $$ \____  $$
| $$\  $ | $$| $$  | $$| $$      | $$      | $$  | $$| $$  \ $$ /$$  \ $$
| $$ \/  | $$|  $$$$$$/| $$$$$$$$| $$$$$$$$| $$  | $$| $$  | $$|  $$$$$$/
|__/     |__/ \______/ |________/|________/|__/  |__/|__/  |__/ \______/ 
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

library SafeMath {
    function tryAdd(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

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

    function mod(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;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IERC20Extended {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address _owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

    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 = payable(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;
    }
}

// main contract
contract MOLLARS is IERC20Extended, Ownable {
    using SafeMath for uint256;

    string private constant _name = "MollarsToken";
    string private constant _symbol = "MOLLARS";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 10_000_000 * 10**_decimals;
    IDexRouter public router;
    address public pair;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    bool public trading;

    constructor() Ownable() {
        _allowances[address(this)][address(router)] = _totalSupply;
        _allowances[address(this)][address(pair)] = _totalSupply;

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

    receive() external payable {}

    function totalSupply() external pure override returns (uint256) {
        return _totalSupply;
    }

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function name() external pure override returns (string memory) {
        return _name;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function allowance(address holder, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[holder][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, _totalSupply);
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != _totalSupply) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        // trading disable till launch
        if (tx.origin != owner()) {
            if (!trading) {
                require(
                    pair != sender && pair != recipient,
                    "Trading is disable"
                );
            }
        }

        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function addLp(address _router) external payable onlyOwner {
        router = IDexRouter(_router);
        pair = IDexFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        _allowances[address(this)][address(router)] = _totalSupply;
        router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20Extended(pair).approve(address(router), type(uint256).max);
    }

    function enableTrading() external onlyOwner {
        require(!trading, "Already enabled");
        trading = true;
    }

    function removeStuckEth(uint256 amount) external onlyOwner {
        payable(owner()).transfer(amount);
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
router 0xf887ea40 → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
trading 0xec44acf2 → bool

Write Contract 9 functions

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

addLp 0x06f20003
address _router
approve 0x095ea7b3
address spender
uint256 amount
returns: bool
approveMax 0x571ac8b0
address spender
returns: bool
enableTrading 0x8a8c523c
No parameters
removeStuckEth 0x893c9f2b
uint256 amount
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner

Token Balances (1) $422.64

View Transfers →
TokenBalancePriceValue
USDT 422.67 $0.9999 $422.64

Recent Transactions

This address has 1 on-chain transactions, but only 1.2% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →