Contract 0x42dbbd5ae373fea2fc320f62d44c058522bb3758 3

 
Ad
Ad
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe371aad426017af13ffec177776f642b21a11f0b18664a222b66043edff5e3cbTransfer194812062021-09-25 2:32:258 mins ago0x624f02e269462fe3fb9b1d7d525e82096bbe980b IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000036853
0xf6939cb957215ef5ad859e13cb6922be81fe547b2ee84aff06b88be4b9e0a584Approve194800702021-09-25 1:53:2447 mins ago0x91aab91b74e8b115abff2ffcf437e4bdef513070 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000046373
0x3bac2732634ccb22e06f97a00b0f14949ea94bbd82793958149335324eda8df1Transfer194785282021-09-25 0:58:121 hr 42 mins ago0xb42e4e1c1feb68d8706a48df4e098b3e934543a4 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000036853003
0xe06f2dab65335855dc330a58bc62157597f25920fc01fcebad99ed6b9ca1ba88Transfer194766382021-09-24 23:52:522 hrs 47 mins ago0x4ac27a8499f0bd263b3e21acf15a674f5ad95da2 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000090783592
0xe3c333663abe47e447a10cc2b75d0a8ae2da173eb2452fc28f0a283f41d059acTransfer194751892021-09-24 22:49:513 hrs 50 mins ago0x624f02e269462fe3fb9b1d7d525e82096bbe980b IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000036853
0x1f89dcdb5972219a2c403a3b8932b7d1f73e5904c4c0bb860b8deb7f36310cdeTransfer194751542021-09-24 22:48:413 hrs 51 mins ago0x190b799982657d65d4c2e3d56a307cb1dd78c1c7 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000036853
0xf6ae47b020ce653176f13e4fa97f89ce46dc04b3500ad0bf1821393537275ad7Transfer194740752021-09-24 22:04:274 hrs 35 mins ago0x9eb4934312b06fad2917f59e528aebbe3328fc8f IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000036853
0x9a6527d93ebbd2969fdab436c3b6532c69f7dd253d1cf66b6f65c090c4dc3d94Transfer194728262021-09-24 21:17:135 hrs 23 mins ago0x63d1853b9f0dcccd99faee5ff9316fb459ff3c79 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000044997513
0x3fb067fcd900e86605893428b8641888c1853744a640e7c66054599daaaeb704Transfer194709492021-09-24 20:06:386 hrs 33 mins ago0xc5398e0c67610e8ed4ec95b76fa709bb6db7131a IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000061360245
0x9a6fd3e0427171f580ec31aa8fe67d0939d94f30a3b7c2210eed0d7301e47698Transfer194708822021-09-24 20:03:046 hrs 37 mins ago0xf6bee05f7a98e9d5bab4f27a3858408f9ae91c46 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000036853
0xa195a7fd0046746168a61406e4c6e7bafd95af034ec9133e007fb790510a4e41Transfer194702532021-09-24 19:39:167 hrs 1 min ago0x9eb4934312b06fad2917f59e528aebbe3328fc8f IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000049947239
0x39c08d5a522c8966bea247230b65e2ef441976bce39345185bad0b4deea802bfTransfer194688242021-09-24 18:46:447 hrs 53 mins ago0xbd2888f19420267fefac08f661890114788ee5d0 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.00004090683
0x460a167b06d227f73c79978b85e24c9c9caf297763502f043bd27a4a913cd4d7Transfer194665842021-09-24 17:27:229 hrs 13 mins ago0x2da96b9f77a97b3b439d944228be1c668e1f21e5 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000073682
0x7acf38cd7926c59ccbb6026d374a47de99f7a6362d397bc5ae9e277f516438fcTransfer194664232021-09-24 17:21:489 hrs 18 mins ago0x0cad7af8b05d0438ffa1a1b73d05676154ae1dca IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.00036841
0x7f9687fa85e5af25280e654c4b90687b26bcbfc48dd4e342dfca2449c176c3aaTransfer194662862021-09-24 17:17:069 hrs 23 mins ago0x183bdb344a07ee3d27f07ac4799a56e4a2fe5439 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.00134948583
0x5a33762f59f5a1fc4709478361822ac67c8d66f5d653fe246b41ad8b1f4a4377Transfer194656142021-09-24 16:54:029 hrs 46 mins ago0x0cad7af8b05d0438ffa1a1b73d05676154ae1dca IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.00008178702
0x1ef887d1bbeec048a1f312a72874c9907d105ec38758abc9519cb26b21071c04Transfer194654762021-09-24 16:49:129 hrs 51 mins ago0x2da96b9f77a97b3b439d944228be1c668e1f21e5 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.00008178702
0x55e5242fbec5fe8a92e932669fe86ce3a63b61a5e08d30d5377970359bff7556Approve194647302021-09-24 16:23:2010 hrs 17 mins ago0x2d69bab9738b05048be16de3e5e0a945b8eeef3a IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.0001633555
0xf973bc4da5ea11f02718a61ee32b77a751f7f250a23138a0bbf43798c7cecfc5Transfer194645852021-09-24 16:18:1910 hrs 22 mins ago0x183bdb344a07ee3d27f07ac4799a56e4a2fe5439 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000099861951
0x99c227617af3a24f038c28eb68b4eb2db3f61caf25498a37381cc7c58fc0efebTransfer194642952021-09-24 16:06:1110 hrs 34 mins ago0x624f02e269462fe3fb9b1d7d525e82096bbe980b IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000040813552
0x850d5ceeefff8260d24a56aad053a8714358ba6f0d6a89589ee084b84b745380Transfer194624892021-09-24 15:01:1111 hrs 39 mins ago0x2da96b9f77a97b3b439d944228be1c668e1f21e5 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000056102407
0xc5728c7128f394d7c9fd66ea231c6cf977f0ef88cdb9469ba7419c93fd16d1aaTransfer194622492021-09-24 14:52:5511 hrs 47 mins ago0x1eecf91b2266607cb3b64ed6588febfaa63a8f0d IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000056923484
0x44038369f97c8f429f6c9c1918ed850687d1e8e052f14f3c24a8e300e31a4333Transfer194619692021-09-24 14:43:1911 hrs 57 mins ago0xbd2888f19420267fefac08f661890114788ee5d0 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000098176392
0x1221cf062ca545e93a13f34d6c23c7ed393735184695b51a28b0e46c6e9417daApprove194612272021-09-24 14:17:0712 hrs 23 mins ago0x667f2cafca800478cc37988ede1221e0af82b4d1 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000793441
0x05ae41925b9916ea353bb832a6d40f5553028d48078d49d5f44a214c20cce32eTransfer194609352021-09-24 14:05:2812 hrs 34 mins ago0xb42e4e1c1feb68d8706a48df4e098b3e934543a4 IN  0x42dbbd5ae373fea2fc320f62d44c058522bb37580 MATIC0.000210507754
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MemecoinMatic

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-06-10
*/

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol



pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// File: @openzeppelin/contracts/utils/Context.sol



pragma solidity ^0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol



pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

// File: @openzeppelin/contracts/access/Ownable.sol



pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol



pragma solidity ^0.8.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor () {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// File: contracts/Memecoin.sol


pragma solidity 0.8.0;





/**
* @title Memecoin token
* @dev main ERC20 currency for meme.com contracts
*/
contract Memecoin is Ownable, Pausable, ERC20 {

  constructor(uint256 _totalSupply, string memory _memeTokenName, string memory _memeTokenSymbol) ERC20(_memeTokenName, _memeTokenSymbol)
  {
    _mint(msg.sender, _totalSupply);
  }

  /**
  * @dev See {ERC20-transfer}.
  * - adds trasfer only when contract is not paused 
  */
  function transfer(address recipient, uint256 amount) 
    public 
    virtual 
    override 
    whenNotPaused 
    returns (bool) 
  {
    return super.transfer(recipient, amount);
  }

  /**
  * @dev See {ERC20-transferFrom}.
  * - adds trasferForm only when contract is not paused
  */
  function transferFrom(address from, address to, uint256 value) 
    public 
    virtual 
    override 
    whenNotPaused 
    returns (bool) 
  {
    return super.transferFrom(from, to, value);
  }

  /**
  * @dev Allows address to burn a number of coins in its ownership
  * @param _amount Amount of coins to burn
  */
  function burn(uint256 _amount) 
    virtual
    external 
    whenNotPaused
  {    
    _burn(msg.sender, _amount);
  }

  /**
  * @dev Pause contract
  */
  function pause()
    external
    onlyOwner
  {
    _pause();
  }

  /**
  * @dev Unpoause contract 
  */
  function unpause()
    external
    onlyOwner
  {
    _unpause();     
  }
}

// File: contracts/MemecoinMatic.sol


pragma solidity 0.8.0;


/**
* @title MemecoinMatic token
* @dev main ERC20 currency for meme.com contracts extended on Matic recommended methods for childTokenContract
* based on https://docs.matic.today/docs/develop/ethereum-matic/pos/calling-contracts/erc20/
*/
contract MemecoinMatic is Memecoin {

  // keeping it for checking, whether deposit being called by valid address or not
  address public childChainManagerProxy;

  constructor(address _childChainManagerProxy, string memory _memeTokenName, string memory _memeTokenSymbol) Memecoin(0, _memeTokenName, _memeTokenSymbol)
  {
    childChainManagerProxy = _childChainManagerProxy;
  }

  // being proxified smart contract, most probably childChainManagerProxy contract's address
  // is not going to change ever, but still, lets keep it 
  function updateChildChainManager(address newChildChainManagerProxy) 
    external 
    onlyOwner
  {
    childChainManagerProxy = newChildChainManagerProxy;
  }

  function deposit(address user, bytes calldata depositData) 
    external 
    whenNotPaused
  {
    require(msg.sender == childChainManagerProxy, "You're not allowed to deposit");

    uint256 amount = abi.decode(depositData, (uint256));

    // `amount` token getting minted here & equal amount got locked in RootChainManager
    _mint(user, amount);
  }

  function withdraw(uint256 amount)
    external 
    whenNotPaused
  {
    _burn(msg.sender, amount);
  }

  /**
  * @dev Allows address to burn a number of coins in its ownership
  * @param _amount Amount of coins to burn
  */
  function burn(uint256 _amount) 
    external
    override 
  {    
    revert("ERROR_CHILD_TOKEN_DOES_NOT_ALLOW_DIRECT_BURNING");  
  }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_childChainManagerProxy","type":"address"},{"internalType":"string","name":"_memeTokenName","type":"string"},{"internalType":"string","name":"_memeTokenSymbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"childChainManagerProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newChildChainManagerProxy","type":"address"}],"name":"updateChildChainManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200185d3803806200185d833981016040819052620000349162000337565b600082828181846200004562000109565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b191690558151620000b1906004906020850190620001e6565b508051620000c7906005906020840190620001e6565b505050620000dc33846200010d60201b60201c565b5050600680546001600160a01b0319166001600160a01b0395909516949094179093555062000475915050565b3390565b6001600160a01b0382166200013f5760405162461bcd60e51b81526004016200013690620003bd565b60405180910390fd5b6200014d60008383620001e1565b8060036000828254620001619190620003fd565b90915550506001600160a01b0382166000908152600160205260408120805483929062000190908490620003fd565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001d5908590620003f4565b60405180910390a35050565b505050565b828054620001f49062000422565b90600052602060002090601f01602090048101928262000218576000855562000263565b82601f106200023357805160ff191683800117855562000263565b8280016001018555821562000263579182015b828111156200026357825182559160200191906001019062000246565b506200027192915062000275565b5090565b5b8082111562000271576000815560010162000276565b600082601f8301126200029d578081fd5b81516001600160401b0380821115620002ba57620002ba6200045f565b6040516020601f8401601f1916820181018381118382101715620002e257620002e26200045f565b6040528382528584018101871015620002f9578485fd5b8492505b838310156200031c5785830181015182840182015291820191620002fd565b838311156200032d57848185840101525b5095945050505050565b6000806000606084860312156200034c578283fd5b83516001600160a01b038116811462000363578384fd5b60208501519093506001600160401b038082111562000380578384fd5b6200038e878388016200028c565b93506040860151915080821115620003a4578283fd5b50620003b3868287016200028c565b9150509250925092565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200041d57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200043757607f821691505b602082108114156200045957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6113d880620004856000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806362f629e7116100b857806395d89b411161007c57806395d89b4114610260578063a457c2d714610268578063a9059cbb1461027b578063cf2c52cb1461028e578063dd62ed3e146102a1578063f2fde38b146102b457610142565b806362f629e71461022057806370a0823114610235578063715018a6146102485780638456cb59146102505780638da5cb5b1461025857610142565b8063313ce5671161010a578063313ce567146101c257806339509351146101d75780633f4ba83a146101ea57806342966c68146101f2578063445a6797146102055780635c975abb1461021857610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018557806323b872dd1461019a5780632e1a7d4d146101ad575b600080fd5b61014f6102c7565b60405161015c9190610ec4565b60405180910390f35b610178610173366004610e64565b610359565b60405161015c9190610eb9565b61018d610376565b60405161015c919061130b565b6101786101a8366004610dab565b61037c565b6101c06101bb366004610e8d565b6103bf565b005b6101ca6103f1565b60405161015c9190611314565b6101786101e5366004610e64565b6103f6565b6101c061044a565b6101c0610200366004610e8d565b610493565b6101c0610213366004610d5f565b6104ab565b61017861050c565b61022861051c565b60405161015c9190610ea5565b61018d610243366004610d5f565b61052b565b6101c061054a565b6101c06105d3565b61022861061a565b61014f610629565b610178610276366004610e64565b610638565b610178610289366004610e64565b6106b3565b6101c061029c366004610de6565b6106eb565b61018d6102af366004610d79565b61075a565b6101c06102c2366004610d5f565b610785565b6060600480546102d690611351565b80601f016020809104026020016040519081016040528092919081815260200182805461030290611351565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b5050505050905090565b600061036d610366610845565b8484610849565b50600192915050565b60035490565b600061038661050c565b156103ac5760405162461bcd60e51b81526004016103a3906110cf565b60405180910390fd5b6103b78484846108fd565b949350505050565b6103c761050c565b156103e45760405162461bcd60e51b81526004016103a3906110cf565b6103ee338261098f565b50565b601290565b600061036d610403610845565b848460026000610411610845565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546104459190611322565b610849565b610452610845565b6001600160a01b031661046361061a565b6001600160a01b0316146104895760405162461bcd60e51b81526004016103a390611141565b610491610a75565b565b60405162461bcd60e51b81526004016103a3906111fc565b6104b3610845565b6001600160a01b03166104c461061a565b6001600160a01b0316146104ea5760405162461bcd60e51b81526004016103a390611141565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600054600160a01b900460ff1690565b6006546001600160a01b031681565b6001600160a01b0381166000908152600160205260409020545b919050565b610552610845565b6001600160a01b031661056361061a565b6001600160a01b0316146105895760405162461bcd60e51b81526004016103a390611141565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6105db610845565b6001600160a01b03166105ec61061a565b6001600160a01b0316146106125760405162461bcd60e51b81526004016103a390611141565b610491610ae6565b6000546001600160a01b031690565b6060600580546102d690611351565b60008060026000610647610845565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156106935760405162461bcd60e51b81526004016103a39061128f565b6106a961069e610845565b85610445868561133a565b5060019392505050565b60006106bd61050c565b156106da5760405162461bcd60e51b81526004016103a3906110cf565b6106e48383610b47565b9392505050565b6106f361050c565b156107105760405162461bcd60e51b81526004016103a3906110cf565b6006546001600160a01b0316331461073a5760405162461bcd60e51b81526004016103a390610fca565b600061074882840184610e8d565b90506107548482610b5b565b50505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61078d610845565b6001600160a01b031661079e61061a565b6001600160a01b0316146107c45760405162461bcd60e51b81526004016103a390611141565b6001600160a01b0381166107ea5760405162461bcd60e51b81526004016103a390611001565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b03831661086f5760405162461bcd60e51b81526004016103a39061124b565b6001600160a01b0382166108955760405162461bcd60e51b81526004016103a390611047565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108f090859061130b565b60405180910390a3505050565b600061090a848484610c1b565b6001600160a01b03841660009081526002602052604081208161092b610845565b6001600160a01b03166001600160a01b031681526020019081526020016000205490508281101561096e5760405162461bcd60e51b81526004016103a3906110f9565b6109848561097a610845565b610445868561133a565b506001949350505050565b6001600160a01b0382166109b55760405162461bcd60e51b81526004016103a390611176565b6109c182600083610d43565b6001600160a01b038216600090815260016020526040902054818110156109fa5760405162461bcd60e51b81526004016103a390610f88565b610a04828261133a565b6001600160a01b03841660009081526001602052604081209190915560038054849290610a3290849061133a565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108f090869061130b565b610a7d61050c565b610a995760405162461bcd60e51b81526004016103a390610f5a565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610acf610845565b604051610adc9190610ea5565b60405180910390a1565b610aee61050c565b15610b0b5760405162461bcd60e51b81526004016103a3906110cf565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610acf610845565b600061036d610b54610845565b8484610c1b565b6001600160a01b038216610b815760405162461bcd60e51b81526004016103a3906112d4565b610b8d60008383610d43565b8060036000828254610b9f9190611322565b90915550506001600160a01b03821660009081526001602052604081208054839290610bcc908490611322565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c0f90859061130b565b60405180910390a35050565b6001600160a01b038316610c415760405162461bcd60e51b81526004016103a3906111b7565b6001600160a01b038216610c675760405162461bcd60e51b81526004016103a390610f17565b610c72838383610d43565b6001600160a01b03831660009081526001602052604090205481811015610cab5760405162461bcd60e51b81526004016103a390611089565b610cb5828261133a565b6001600160a01b038086166000908152600160205260408082209390935590851681529081208054849290610ceb908490611322565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d35919061130b565b60405180910390a350505050565b505050565b80356001600160a01b038116811461054557600080fd5b600060208284031215610d70578081fd5b6106e482610d48565b60008060408385031215610d8b578081fd5b610d9483610d48565b9150610da260208401610d48565b90509250929050565b600080600060608486031215610dbf578081fd5b610dc884610d48565b9250610dd660208501610d48565b9150604084013590509250925092565b600080600060408486031215610dfa578283fd5b610e0384610d48565b9250602084013567ffffffffffffffff80821115610e1f578384fd5b818601915086601f830112610e32578384fd5b813581811115610e40578485fd5b876020828501011115610e51578485fd5b6020830194508093505050509250925092565b60008060408385031215610e76578182fd5b610e7f83610d48565b946020939093013593505050565b600060208284031215610e9e578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610ef057858101830151858201604001528201610ed4565b81811115610f015783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b6020808252601d908201527f596f75277265206e6f7420616c6c6f77656420746f206465706f736974000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602f908201527f4552524f525f4348494c445f544f4b454e5f444f45535f4e4f545f414c4c4f5760408201526e5f4449524543545f4255524e494e4760881b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b600082198211156113355761133561138c565b500190565b60008282101561134c5761134c61138c565b500390565b60028104600182168061136557607f821691505b6020821081141561138657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212207cd5c830f0f8f02f838d1be3c4771157b96d452257397a5a61d4f08f0b53671764736f6c63430008000033000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000084d656d65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d454d0000000000000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000084d656d65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d454d0000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _childChainManagerProxy (address): 0xa6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa
Arg [1] : _memeTokenName (string): Memecoin
Arg [2] : _memeTokenSymbol (string): MEM

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [4] : 4d656d65636f696e000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 4d454d0000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

21685:1474:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6528:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8695:169;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7648:108::-;;;:::i;:::-;;;;;;;:::i;20661:205::-;;;;;;:::i;:::-;;:::i;22774:109::-;;;;;;:::i;:::-;;:::i;:::-;;7490:93;;;:::i;:::-;;;;;;;:::i;10177:215::-;;;;;;:::i;:::-;;:::i;21284:79::-;;;:::i;23014:140::-;;;;;;:::i;:::-;;:::i;22232:165::-;;;;;;:::i;:::-;;:::i;18673:86::-;;;:::i;21811:37::-;;;:::i;:::-;;;;;;;:::i;7819:127::-;;;;;;:::i;:::-;;:::i;17044:148::-;;;:::i;21166:70::-;;;:::i;16393:87::-;;;:::i;6747:104::-;;;:::i;10895:377::-;;;;;;:::i;:::-;;:::i;20356:193::-;;;;;;:::i;:::-;;:::i;22403:365::-;;;;;;:::i;:::-;;:::i;8397:151::-;;;;;;:::i;:::-;;:::i;17347:244::-;;;;;;:::i;:::-;;:::i;6528:100::-;6582:13;6615:5;6608:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6528:100;:::o;8695:169::-;8778:4;8795:39;8804:12;:10;:12::i;:::-;8818:7;8827:6;8795:8;:39::i;:::-;-1:-1:-1;8852:4:0;8695:169;;;;:::o;7648:108::-;7736:12;;7648:108;:::o;20661:205::-;20801:4;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;;;;;;;;;20825:35:::1;20844:4;20850:2;20854:5;20825:18;:35::i;:::-;20818:42:::0;20661:205;-1:-1:-1;;;;20661:205:0:o;22774:109::-;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;22852:25:::1;22858:10;22870:6;22852:5;:25::i;:::-;22774:109:::0;:::o;7490:93::-;7573:2;7490:93;:::o;10177:215::-;10265:4;10282:80;10291:12;:10;:12::i;:::-;10305:7;10351:10;10314:11;:25;10326:12;:10;:12::i;:::-;-1:-1:-1;;;;;10314:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;10314:25:0;;;:34;;;;;;;;;;:47;;;;:::i;:::-;10282:8;:80::i;21284:79::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;21342:10:::1;:8;:10::i;:::-;21284:79::o:0;23014:140::-;23089:57;;-1:-1:-1;;;23089:57:0;;;;;;;:::i;22232:165::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;22341:22:::1;:50:::0;;-1:-1:-1;;;;;;22341:50:0::1;-1:-1:-1::0;;;;;22341:50:0;;;::::1;::::0;;;::::1;::::0;;22232:165::o;18673:86::-;18720:4;18744:7;-1:-1:-1;;;18744:7:0;;;;;18673:86::o;21811:37::-;;;-1:-1:-1;;;;;21811:37:0;;:::o;7819:127::-;-1:-1:-1;;;;;7920:18:0;;7893:7;7920:18;;;:9;:18;;;;;;7819:127;;;;:::o;17044:148::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;17151:1:::1;17135:6:::0;;17114:40:::1;::::0;-1:-1:-1;;;;;17135:6:0;;::::1;::::0;17114:40:::1;::::0;17151:1;;17114:40:::1;17182:1;17165:19:::0;;-1:-1:-1;;;;;;17165:19:0::1;::::0;;17044:148::o;21166:70::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;21222:8:::1;:6;:8::i;16393:87::-:0;16439:7;16466:6;-1:-1:-1;;;;;16466:6:0;16393:87;:::o;6747:104::-;6803:13;6836:7;6829:14;;;;;:::i;10895:377::-;10988:4;11005:24;11032:11;:25;11044:12;:10;:12::i;:::-;-1:-1:-1;;;;;11032:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;11032:25:0;;;:34;;;;;;;;;;;-1:-1:-1;11085:35:0;;;;11077:85;;;;-1:-1:-1;;;11077:85:0;;;;;;;:::i;:::-;11173:67;11182:12;:10;:12::i;:::-;11196:7;11205:34;11224:15;11205:16;:34;:::i;11173:67::-;-1:-1:-1;11260:4:0;;10895:377;-1:-1:-1;;;10895:377:0:o;20356:193::-;20486:4;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;20510:33:::1;20525:9;20536:6;20510:14;:33::i;:::-;20503:40:::0;20356:193;-1:-1:-1;;;20356:193:0:o;22403:365::-;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;22529:22:::1;::::0;-1:-1:-1;;;;;22529:22:0::1;22515:10;:36;22507:78;;;;-1:-1:-1::0;;;22507:78:0::1;;;;;;;:::i;:::-;22594:14;22611:34;::::0;;::::1;22622:11:::0;22611:34:::1;:::i;:::-;22594:51;;22743:19;22749:4;22755:6;22743:5;:19::i;:::-;19039:1;22403:365:::0;;;:::o;8397:151::-;-1:-1:-1;;;;;8513:18:0;;;8486:7;8513:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8397:151::o;17347:244::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17436:22:0;::::1;17428:73;;;;-1:-1:-1::0;;;17428:73:0::1;;;;;;;:::i;:::-;17538:6;::::0;;17517:38:::1;::::0;-1:-1:-1;;;;;17517:38:0;;::::1;::::0;17538:6;::::1;::::0;17517:38:::1;::::0;::::1;17566:6;:17:::0;;-1:-1:-1;;;;;;17566:17:0::1;-1:-1:-1::0;;;;;17566:17:0;;;::::1;::::0;;;::::1;::::0;;17347:244::o;4115:98::-;4195:10;4115:98;:::o;14251:346::-;-1:-1:-1;;;;;14353:19:0;;14345:68;;;;-1:-1:-1;;;14345:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14432:21:0;;14424:68;;;;-1:-1:-1;;;14424:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14505:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;14557:32;;;;;14535:6;;14557:32;:::i;:::-;;;;;;;;14251:346;;;:::o;9346:422::-;9452:4;9469:36;9479:6;9487:9;9498:6;9469:9;:36::i;:::-;-1:-1:-1;;;;;9545:19:0;;9518:24;9545:19;;;:11;:19;;;;;9518:24;9565:12;:10;:12::i;:::-;-1:-1:-1;;;;;9545:33:0;-1:-1:-1;;;;;9545:33:0;;;;;;;;;;;;;9518:60;;9617:6;9597:16;:26;;9589:79;;;;-1:-1:-1;;;9589:79:0;;;;;;;:::i;:::-;9679:57;9688:6;9696:12;:10;:12::i;:::-;9710:25;9729:6;9710:16;:25;:::i;9679:57::-;-1:-1:-1;9756:4:0;;9346:422;-1:-1:-1;;;;9346:422:0:o;13319:494::-;-1:-1:-1;;;;;13403:21:0;;13395:67;;;;-1:-1:-1;;;13395:67:0;;;;;;;:::i;:::-;13475:49;13496:7;13513:1;13517:6;13475:20;:49::i;:::-;-1:-1:-1;;;;;13562:18:0;;13537:22;13562:18;;;:9;:18;;;;;;13599:24;;;;13591:71;;;;-1:-1:-1;;;13591:71:0;;;;;;;:::i;:::-;13694:23;13711:6;13694:14;:23;:::i;:::-;-1:-1:-1;;;;;13673:18:0;;;;;;:9;:18;;;;;:44;;;;13728:12;:22;;13744:6;;13673:18;13728:22;;13744:6;;13728:22;:::i;:::-;;;;-1:-1:-1;;13768:37:0;;13794:1;;-1:-1:-1;;;;;13768:37:0;;;;;;;13798:6;;13768:37;:::i;19732:120::-;19276:8;:6;:8::i;:::-;19268:41;;;;-1:-1:-1;;;19268:41:0;;;;;;;:::i;:::-;19801:5:::1;19791:15:::0;;-1:-1:-1;;;;19791:15:0::1;::::0;;19822:22:::1;19831:12;:10;:12::i;:::-;19822:22;;;;;;:::i;:::-;;;;;;;;19732:120::o:0;19473:118::-;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;19533:7:::1;:14:::0;;-1:-1:-1;;;;19533:14:0::1;-1:-1:-1::0;;;19533:14:0::1;::::0;;19563:20:::1;19570:12;:10;:12::i;8159:175::-:0;8245:4;8262:42;8272:12;:10;:12::i;:::-;8286:9;8297:6;8262:9;:42::i;12648:338::-;-1:-1:-1;;;;;12732:21:0;;12724:65;;;;-1:-1:-1;;;12724:65:0;;;;;;;:::i;:::-;12802:49;12831:1;12835:7;12844:6;12802:20;:49::i;:::-;12880:6;12864:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12897:18:0;;;;;;:9;:18;;;;;:28;;12919:6;;12897:18;:28;;12919:6;;12897:28;:::i;:::-;;;;-1:-1:-1;;12941:37:0;;-1:-1:-1;;;;;12941:37:0;;;12958:1;;12941:37;;;;12971:6;;12941:37;:::i;:::-;;;;;;;;12648:338;;:::o;11762:604::-;-1:-1:-1;;;;;11868:20:0;;11860:70;;;;-1:-1:-1;;;11860:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11949:23:0;;11941:71;;;;-1:-1:-1;;;11941:71:0;;;;;;;:::i;:::-;12025:47;12046:6;12054:9;12065:6;12025:20;:47::i;:::-;-1:-1:-1;;;;;12109:17:0;;12085:21;12109:17;;;:9;:17;;;;;;12145:23;;;;12137:74;;;;-1:-1:-1;;;12137:74:0;;;;;;;:::i;:::-;12242:22;12258:6;12242:13;:22;:::i;:::-;-1:-1:-1;;;;;12222:17:0;;;;;;;:9;:17;;;;;;:42;;;;12275:20;;;;;;;;:30;;12299:6;;12222:17;12275:30;;12299:6;;12275:30;:::i;:::-;;;;;;;;12340:9;-1:-1:-1;;;;;12323:35:0;12332:6;-1:-1:-1;;;;;12323:35:0;;12351:6;12323:35;;;;;;:::i;:::-;;;;;;;;11762:604;;;;:::o;15200:92::-;;;;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:717::-;;;;1171:2;1159:9;1150:7;1146:23;1142:32;1139:2;;;1192:6;1184;1177:22;1139:2;1220:31;1241:9;1220:31;:::i;:::-;1210:41;;1302:2;1291:9;1287:18;1274:32;1325:18;1366:2;1358:6;1355:14;1352:2;;;1387:6;1379;1372:22;1352:2;1430:6;1419:9;1415:22;1405:32;;1475:7;1468:4;1464:2;1460:13;1456:27;1446:2;;1502:6;1494;1487:22;1446:2;1547;1534:16;1573:2;1565:6;1562:14;1559:2;;;1594:6;1586;1579:22;1559:2;1644:7;1639:2;1630:6;1626:2;1622:15;1618:24;1615:37;1612:2;;;1670:6;1662;1655:22;1612:2;1706;1702;1698:11;1688:21;;1728:6;1718:16;;;;;1129:611;;;;;:::o;1745:266::-;;;1874:2;1862:9;1853:7;1849:23;1845:32;1842:2;;;1895:6;1887;1880:22;1842:2;1923:31;1944:9;1923:31;:::i;:::-;1913:41;2001:2;1986:18;;;;1973:32;;-1:-1:-1;;;1832:179:1:o;2016:190::-;;2128:2;2116:9;2107:7;2103:23;2099:32;2096:2;;;2149:6;2141;2134:22;2096:2;-1:-1:-1;2177:23:1;;2086:120;-1:-1:-1;2086:120:1:o;2211:203::-;-1:-1:-1;;;;;2375:32:1;;;;2357:51;;2345:2;2330:18;;2312:102::o;2419:187::-;2584:14;;2577:22;2559:41;;2547:2;2532:18;;2514:92::o;2611:603::-;;2752:2;2781;2770:9;2763:21;2813:6;2807:13;2856:6;2851:2;2840:9;2836:18;2829:34;2881:4;2894:140;2908:6;2905:1;2902:13;2894:140;;;3003:14;;;2999:23;;2993:30;2969:17;;;2988:2;2965:26;2958:66;2923:10;;2894:140;;;3052:6;3049:1;3046:13;3043:2;;;3122:4;3117:2;3108:6;3097:9;3093:22;3089:31;3082:45;3043:2;-1:-1:-1;3198:2:1;3177:15;-1:-1:-1;;3173:29:1;3158:45;;;;3205:2;3154:54;;2732:482;-1:-1:-1;;;2732:482:1:o;3219:399::-;3421:2;3403:21;;;3460:2;3440:18;;;3433:30;3499:34;3494:2;3479:18;;3472:62;-1:-1:-1;;;3565:2:1;3550:18;;3543:33;3608:3;3593:19;;3393:225::o;3623:344::-;3825:2;3807:21;;;3864:2;3844:18;;;3837:30;-1:-1:-1;;;3898:2:1;3883:18;;3876:50;3958:2;3943:18;;3797:170::o;3972:398::-;4174:2;4156:21;;;4213:2;4193:18;;;4186:30;4252:34;4247:2;4232:18;;4225:62;-1:-1:-1;;;4318:2:1;4303:18;;4296:32;4360:3;4345:19;;4146:224::o;4375:353::-;4577:2;4559:21;;;4616:2;4596:18;;;4589:30;4655:31;4650:2;4635:18;;4628:59;4719:2;4704:18;;4549:179::o;4733:402::-;4935:2;4917:21;;;4974:2;4954:18;;;4947:30;5013:34;5008:2;4993:18;;4986:62;-1:-1:-1;;;5079:2:1;5064:18;;5057:36;5125:3;5110:19;;4907:228::o;5140:398::-;5342:2;5324:21;;;5381:2;5361:18;;;5354:30;5420:34;5415:2;5400:18;;5393:62;-1:-1:-1;;;5486:2:1;5471:18;;5464:32;5528:3;5513:19;;5314:224::o;5543:402::-;5745:2;5727:21;;;5784:2;5764:18;;;5757:30;5823:34;5818:2;5803:18;;5796:62;-1:-1:-1;;;5889:2:1;5874:18;;5867:36;5935:3;5920:19;;5717:228::o;5950:340::-;6152:2;6134:21;;;6191:2;6171:18;;;6164:30;-1:-1:-1;;;6225:2:1;6210:18;;6203:46;6281:2;6266:18;;6124:166::o;6295:404::-;6497:2;6479:21;;;6536:2;6516:18;;;6509:30;6575:34;6570:2;6555:18;;6548:62;-1:-1:-1;;;6641:2:1;6626:18;;6619:38;6689:3;6674:19;;6469:230::o;6704:356::-;6906:2;6888:21;;;6925:18;;;6918:30;6984:34;6979:2;6964:18;;6957:62;7051:2;7036:18;;6878:182::o;7065:397::-;7267:2;7249:21;;;7306:2;7286:18;;;7279:30;7345:34;7340:2;7325:18;;7318:62;-1:-1:-1;;;7411:2:1;7396:18;;7389:31;7452:3;7437:19;;7239:223::o;7467:401::-;7669:2;7651:21;;;7708:2;7688:18;;;7681:30;7747:34;7742:2;7727:18;;7720:62;-1:-1:-1;;;7813:2:1;7798:18;;7791:35;7858:3;7843:19;;7641:227::o;7873:411::-;8075:2;8057:21;;;8114:2;8094:18;;;8087:30;8153:34;8148:2;8133:18;;8126:62;-1:-1:-1;;;8219:2:1;8204:18;;8197:45;8274:3;8259:19;;8047:237::o;8289:400::-;8491:2;8473:21;;;8530:2;8510:18;;;8503:30;8569:34;8564:2;8549:18;;8542:62;-1:-1:-1;;;8635:2:1;8620:18;;8613:34;8679:3;8664:19;;8463:226::o;8694:401::-;8896:2;8878:21;;;8935:2;8915:18;;;8908:30;8974:34;8969:2;8954:18;;8947:62;-1:-1:-1;;;9040:2:1;9025:18;;9018:35;9085:3;9070:19;;8868:227::o;9100:355::-;9302:2;9284:21;;;9341:2;9321:18;;;9314:30;9380:33;9375:2;9360:18;;9353:61;9446:2;9431:18;;9274:181::o;9460:177::-;9606:25;;;9594:2;9579:18;;9561:76::o;9642:184::-;9814:4;9802:17;;;;9784:36;;9772:2;9757:18;;9739:87::o;9831:128::-;;9902:1;9898:6;9895:1;9892:13;9889:2;;;9908:18;;:::i;:::-;-1:-1:-1;9944:9:1;;9879:80::o;9964:125::-;;10032:1;10029;10026:8;10023:2;;;10037:18;;:::i;:::-;-1:-1:-1;10074:9:1;;10013:76::o;10094:380::-;10179:1;10169:12;;10226:1;10216:12;;;10237:2;;10291:4;10283:6;10279:17;10269:27;;10237:2;10344;10336:6;10333:14;10313:18;10310:38;10307:2;;;10390:10;10385:3;10381:20;10378:1;10371:31;10425:4;10422:1;10415:15;10453:4;10450:1;10443:15;10307:2;;10149:325;;;:::o;10479:127::-;10540:10;10535:3;10531:20;10528:1;10521:31;10571:4;10568:1;10561:15;10595:4;10592:1;10585:15

Swarm Source

ipfs://7cd5c830f0f8f02f838d1be3c4771157b96d452257397a5a61d4f08f0b536717
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.