Address Contract Partially Verified
Address
0x385d65Ed9241E415cFC689C3e0BCf5aB2f0505c2
Balance
0.003913 ETH ($7.74)
Nonce
1
Code Size
8472 bytes
Creator
0xBCe01FfE...123c at tx 0x6e3345c0...6b568e
Indexed Transactions
0 (1 on-chain, 1.2% indexed)
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 →| Token | Balance | Price | Value |
|---|---|---|---|
| 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 →