Contract 0x29F1e986FCa02B7E54138c04C4F503DdDD250558 2

 

Contract Overview

VESQ: VSQ Token
Balance:
0 MATIC

MATIC Value:
$0.00
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1be0dcd4101672770a24c091f3c3b9497790c4b219d2a4c6f225afe0682ae65bApprove339470862022-10-05 4:01:4815 hrs 2 mins ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0x16bfdfb950e1de032c216c1b7270d3fd54b695365cc331efb2688d7ad6b4cc78Approve339080052022-10-04 5:34:041 day 13 hrs ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0x6763f3af13e1e22f9d3ba48de8bef1703ba67f17af5706507c2edbf48617dbe4Approve338664432022-10-03 5:34:492 days 13 hrs ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0xfef771eda87b6d62aaa9330ccdfb7c2aa214a6333e9379808cbfb803e0e1a580Approve338381462022-10-02 13:13:283 days 5 hrs ago0xe317c680f00b8529ff699e717b4e1636716526dc IN  VESQ: VSQ Token0 MATIC0.00212878846
0xf7232316a5fbd1c9ef59d4e3df77025b46124cdcd9aee35fdfe4cdc90a7a452dTransfer338381002022-10-02 13:11:523 days 5 hrs ago0xfbe2904c6a24c5de681bc87e6e2dcf5461eab45b IN  VESQ: VSQ Token0 MATIC0.00137457246
0x0491fada94f2fa34b618de32b8f6e55ecab9da039ba97386a351ec8d2a39b720Transfer338380442022-10-02 13:09:563 days 5 hrs ago0xfbe2904c6a24c5de681bc87e6e2dcf5461eab45b IN  VESQ: VSQ Token0 MATIC0.00248438448
0xc7899455cb2523f703a36d6063ff4728f141d54a480ba091026c913b7f466b3fApprove338267292022-10-02 6:34:273 days 12 hrs ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0x0c214be02fc72d2a74b355890b07e9c1172980d3304e45c4dbfceeec8551cad4Approve338262542022-10-02 6:18:093 days 12 hrs ago0x9033b241ebbfecaed501fad794afb57fdb27dc16 IN  VESQ: VSQ Token0 MATIC0.001215350
0x0c6afa34fa99628c1688d722bdaf65b7d85047bea6941f096f0388c6e1b4ca77Approve338035292022-10-01 17:12:314 days 1 hr ago0x9e32643153bb21a77a5a757d6c51a01aebea0fa7 IN  VESQ: VSQ Token0 MATIC0.002748810069 59.000001502
0x6e2e9976cbb617f35378efa0dd5a4dd201b037454efc9450ce8d931c7bb4686aApprove337843432022-10-01 6:05:034 days 12 hrs ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0xcc82c49460ffd583698e5e49766016f6467a113a141527d7d74faacd8673a33eApprove337445362022-09-30 6:58:175 days 12 hrs ago0xab8e0f234f7944dabbb59a970de9db4d6b8c4e6e IN  VESQ: VSQ Token0 MATIC0.001423430911 30.552284004
0xc95e138ead2c5245877341d3f0b9809fe3efc4a54fcf3e48d47a26a381a4c47aApprove337406722022-09-30 4:43:165 days 14 hrs ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0x468be11fc0f74604fce1ec192673a6ecc926c36ca2f509408d1a38d20dd8c7faApprove337406672022-09-30 4:43:025 days 14 hrs ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0x71ff7c98f95d88b124d7b980b2a63b86546cc190d713a3d0e14a12bf5d2a0cc3Transfer337141762022-09-29 13:11:386 days 5 hrs ago0xcc579d7a1131b94b0ae5951056c68af749e8d63f IN  VESQ: VSQ Token0 MATIC0.001411693256 30.070575905
0x6aefa2591a34dd77c3bb285a10ad02b34018571bac7916c679b24bb8cf5f6240Approve336969702022-09-29 3:16:336 days 15 hrs ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0x89efaa2216b029de00dfbaa728c55ba08c129fb0ba72359fe390a0ad4aafcf38Approve336799622022-09-28 17:28:567 days 1 hr ago0x4cb6bcf2fef72966d3ee94f7368ae0d0a2ea59cf IN  VESQ: VSQ Token0 MATIC0.000886764299 30.069999999
0x96a9145925df29985f6329af44e36660eb6a9664bb7d0161c56afa2ef129bf4eApprove336555272022-09-28 3:26:187 days 15 hrs ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0xcf9071d074ef1415765761a7b5ce5ff634c2baa9a3d4847210f9fd94d098525dApprove336272202022-09-27 10:33:148 days 8 hrs ago0x1e8cbbbfb827785ecc23dd0426a8907c7cdcca3a IN  VESQ: VSQ Token0 MATIC0.000729180001 30.000000057
0x472e17abf06e396bb27ae75031447337d864c5fbd9447bc9ec2aea8626279c6aApprove335515682022-09-25 14:10:2310 days 4 hrs ago0xb7e428a19b20c7a84bfc00fd5422051dc7b08398 IN  VESQ: VSQ Token0 MATIC0.001598037 34.3
0x4c72bf4765d0c4e6901f862a5d2f5b5422c20c9294c4d9a5fd56186c1ad52e2aApprove335457672022-09-25 10:50:3810 days 8 hrs ago0xad9f9194c68bd83250a534a7da574687e1f102ff IN  VESQ: VSQ Token0 MATIC0.0013977 30.000000011
0x54a23b1d1f49eb1cc686bd4ad80269c730e5bec21703ba996e86dfe0b4d9fd84Approve335069662022-09-24 12:20:3211 days 6 hrs ago0x727ce02a6f0f280d566a3f6f8b78b55c05cf5d34 IN  VESQ: VSQ Token0 MATIC0.001334550
0x1bd6c05918c0a0bfa71bb26563dd4ff9fa1d3d5fd93f74c66fa573df8d7496a3Transfer334621542022-09-23 10:11:2812 days 8 hrs ago0x638fc297afa854ef5e44e0a1b39bbb1214f3d25b IN  VESQ: VSQ Token0 MATIC0.00144544483 30.77378818
0x185eb17779b4a92aad707385af54b8a48e7d33183388683168c1a8eab65edf71Approve334619942022-09-23 10:05:5612 days 8 hrs ago0x5d11a1cee5097650a33c60f1626ac2ea6ad1c653 IN  VESQ: VSQ Token0 MATIC0.001405815977 30.174199999
0x0cc76d7adaab8dff0b48e59c579ec8563d4fc7002600ea2cc2cd25d235474691Transfer334619332022-09-23 10:03:5012 days 9 hrs ago0x638fc297afa854ef5e44e0a1b39bbb1214f3d25b IN  VESQ: VSQ Token0 MATIC0.001475796023 31.427999998
0xab6ddef4f67844c84b5ee2a12010c8ac9ff0bde0550469370e2e24456d925977Approve333969662022-09-21 20:31:5213 days 22 hrs ago0x7a5eaedc243382dba607b75026d9c81f80938ddf IN  VESQ: VSQ Token0 MATIC0.001397703342 30.000071735
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VSQERC20Token

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-01-01
*/

// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity 0.7.5;

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

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {

        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

    function sqrrt(uint256 a) internal pure returns (uint c) {
        if (a > 3) {
            c = a;
            uint b = add( div( a, 2), 1 );
            while (b < c) {
                c = b;
                b = div( add( div( a, b ), b), 2 );
            }
        } else if (a != 0) {
            c = 1;
        }
    }

    function percentageAmount( uint256 total_, uint8 percentage_ ) internal pure returns ( uint256 percentAmount_ ) {
        return div( mul( total_, percentage_ ), 1000 );
    }

    function substractPercentage( uint256 total_, uint8 percentageToSub_ ) internal pure returns ( uint256 result_ ) {
        return sub( total_, div( mul( total_, percentageToSub_ ), 1000 ) );
    }

    function percentageOfTotal( uint256 part_, uint256 total_ ) internal pure returns ( uint256 percent_ ) {
        return div( mul(part_, 100) , total_ );
    }

    function average(uint256 a, uint256 b) internal pure returns (uint256) {
        // (a + b) / 2 can overflow, so we distribute
        return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);
    }

    function quadraticPricing( uint256 payment_, uint256 multiplier_ ) internal pure returns (uint256) {
        return sqrrt( mul( multiplier_, payment_ ) );
    }

  function bondingCurve( uint256 supply_, uint256 multiplier_ ) internal pure returns (uint256) {
      return mul( multiplier_, supply_ );
  }
}

abstract contract ERC20 is IERC20 {

  using SafeMath for uint256;

  mapping (address => uint256) internal _balances;

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

  uint256 internal _totalSupply;

  string internal _name;

  string internal _symbol;
    
  uint8 internal _decimals;

  constructor (string memory name_, string memory symbol_, uint8 decimals_) {
    _name = name_;
    _symbol = symbol_;
    _decimals = decimals_;
  }

  function name() public view returns (string memory) {
    return _name;
  }

  function symbol() public view returns (string memory) {
    return _symbol;
  }

  function decimals() public view returns (uint8) {
    return _decimals;
  }

  function totalSupply() public view override returns (uint256) {
    return _totalSupply;
  }

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

  function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
    _transfer(msg.sender, recipient, amount);
    return true;
  }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender]
          .sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender]
          .sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

      _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
      _balances[recipient] = _balances[recipient].add(amount);
      emit Transfer(sender, recipient, amount);
    }

    function _mint(address account_, uint256 amount_) internal virtual {
        require(account_ != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address( this ), account_, amount_);
        _totalSupply = _totalSupply.add(amount_);
        _balances[account_] = _balances[account_].add(amount_);
        emit Transfer(address( 0 ), account_, amount_);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

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

  function _beforeTokenTransfer( address from_, address to_, uint256 amount_ ) internal virtual { }
}

library Counters {
    using SafeMath for uint256;

    struct Counter {
        uint256 _value; // default: 0
    }

    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }

    function increment(Counter storage counter) internal {
        counter._value += 1;
    }

    function decrement(Counter storage counter) internal {
        counter._value = counter._value.sub(1);
    }
}

interface IERC2612Permit {

    function permit(
        address owner,
        address spender,
        uint256 amount,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    function nonces(address owner) external view returns (uint256);
}

abstract contract ERC20Permit is ERC20, IERC2612Permit {
    using Counters for Counters.Counter;

    mapping(address => Counters.Counter) private _nonces;

    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;

    bytes32 public immutable DOMAIN_SEPARATOR;

    constructor() {
        uint256 chainID;
        assembly {
            chainID := chainid()
        }

        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                keccak256(bytes(name())),
                keccak256(bytes("1")), // Version
                chainID,
                address(this)
            )
        );
    }

    function permit(
        address owner,
        address spender,
        uint256 amount,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual override {
        require(block.timestamp <= deadline, "Permit: expired deadline");

        bytes32 hashStruct =
            keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, amount, _nonces[owner].current(), deadline));

        bytes32 _hash = keccak256(abi.encodePacked(uint16(0x1901), DOMAIN_SEPARATOR, hashStruct));

        address signer = ecrecover(_hash, v, r, s);
        require(signer != address(0) && signer == owner, "Invalid signature");

        _nonces[owner].increment();
        _approve(owner, spender, amount);
    }

    function nonces(address owner) public view override returns (uint256) {
        return _nonces[owner].current();
    }
}

// Audit on 5-Jan-2021 by Keno and BoringCrypto
// Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol
// Edited by BoringCrypto

contract BoringOwnableData {
    address public owner;
    address public pendingOwner;
}

contract BoringOwnable is BoringOwnableData {
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /// @notice `owner` defaults to msg.sender on construction.
    constructor() public {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    /// @notice Transfers ownership to `newOwner`. Either directly or claimable by the new pending owner.
    /// Can only be invoked by the current `owner`.
    /// @param newOwner Address of the new owner.
    /// @param direct True if `newOwner` should be set immediately. False if `newOwner` needs to use `claimOwnership`.
    /// @param renounce Allows the `newOwner` to be `address(0)` if `direct` and `renounce` is True. Has no effect otherwise.
    function transferOwnership(
        address newOwner,
        bool direct,
        bool renounce
    ) public onlyOwner {
        if (direct) {
            // Checks
            require(newOwner != address(0) || renounce, "Ownable: zero address");

            // Effects
            emit OwnershipTransferred(owner, newOwner);
            owner = newOwner;
            pendingOwner = address(0);
        } else {
            // Effects
            pendingOwner = newOwner;
        }
    }

    /// @notice Needs to be called by `pendingOwner` to claim ownership.
    function claimOwnership() public {
        address _pendingOwner = pendingOwner;

        // Checks
        require(msg.sender == _pendingOwner, "Ownable: caller != pending owner");

        // Effects
        emit OwnershipTransferred(owner, _pendingOwner);
        owner = _pendingOwner;
        pendingOwner = address(0);
    }

    /// @notice Only allows the `owner` to execute the function.
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: caller is not the owner");
        _;
    }
}

contract VaultOwned is BoringOwnable {
    
  address internal _vault;

  function setVault( address vault_ ) external onlyOwner() returns ( bool ) {
    require(vault_ != address(0), "VaultOwned: vault cannot be the 0 address!");
    _vault = vault_;

    return true;
  }

  function vault() public view returns (address) {
    return _vault;
  }

  modifier onlyVault() {
    require( _vault == msg.sender, "VaultOwned: caller is not the Vault" );
    _;
  }

}

contract VSQERC20Token is ERC20Permit, VaultOwned {

    using SafeMath for uint256;

    constructor() ERC20("VSQ", "VSQ", 9) {
    }

    function mint(address account_, uint256 amount_) external onlyVault() {
        _mint(account_, amount_);
    }

    function burn(uint256 amount) external virtual {
        _burn(msg.sender, amount);
    }
     
    function burnFrom(address account_, uint256 amount_) external virtual {
        _burnFrom(account_, amount_);
    }

    function _burnFrom(address account_, uint256 amount_) internal virtual {
        uint256 allowance = allowance(account_, msg.sender);
        require( allowance >= amount_, "ERC20: burn amount exceeds allowance" );
    
        uint256 decreasedAllowance_ = allowance - amount_;

        _approve(account_, msg.sender, decreasedAllowance_);
        _burn(account_, amount_);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":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"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"address","name":"account_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"vault_","type":"address"}],"name":"setVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a06040523480156200001157600080fd5b506040518060400160405280600381526020017f56535100000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f56535100000000000000000000000000000000000000000000000000000000008152506009826003908051906020019062000098929190620002f4565b508160049080519060200190620000b1929190620002f4565b5080600560006101000a81548160ff021916908360ff16021790555050505060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001066200024e60201b60201c565b805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060405160208183030381529060405280519060200120608081815250505033600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3620003aa565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620002ea5780601f10620002be57610100808354040283529160200191620002ea565b820191906000526020600020905b815481529060010190602001808311620002cc57829003601f168201915b5050505050905090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200032c576000855562000378565b82601f106200034757805160ff191683800117855562000378565b8280016001018555821562000378579182015b82811115620003775782518255916020019190600101906200035a565b5b5090506200038791906200038b565b5090565b5b80821115620003a65760008160009055506001016200038c565b5090565b60805161253b620003ca60003980610d6652806115f6525061253b6000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636817031b116100c3578063a457c2d71161007c578063a457c2d714610698578063a9059cbb146106fc578063d505accf14610760578063dd62ed3e146107f9578063e30c397814610871578063fbfa77cf146108a557610158565b80636817031b1461048957806370a08231146104e357806379cc67901461053b5780637ecebe00146105895780638da5cb5b146105e157806395d89b411461061557610158565b8063313ce56711610115578063313ce567146103605780633644e51514610381578063395093511461039f57806340c10f191461040357806342966c68146104515780634e71e0c81461047f57610158565b806306fdde031461015d578063078dfbe7146101e0578063095ea7b31461023c57806318160ddd146102a057806323b872dd146102be57806330adf81f14610342575b600080fd5b6101656108d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a557808201518184015260208101905061018a565b50505050905090810190601f1680156101d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023a600480360360608110156101f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919080351515906020019092919050505061097b565b005b6102886004803603604081101561025257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c3a565b60405180821515815260200191505060405180910390f35b6102a8610c51565b6040518082815260200191505060405180910390f35b61032a600480360360608110156102d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c5b565b60405180821515815260200191505060405180910390f35b61034a610d26565b6040518082815260200191505060405180910390f35b610368610d4d565b604051808260ff16815260200191505060405180910390f35b610389610d64565b6040518082815260200191505060405180910390f35b6103eb600480360360408110156103b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d88565b60405180821515815260200191505060405180910390f35b61044f6004803603604081101561041957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e2d565b005b61047d6004803603602081101561046757600080fd5b8101908080359060200190929190505050610ee1565b005b610487610eee565b005b6104cb6004803603602081101561049f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b8565b60405180821515815260200191505060405180910390f35b610525600480360360208110156104f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061124d565b6040518082815260200191505060405180910390f35b6105876004803603604081101561055157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611295565b005b6105cb6004803603602081101561059f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a3565b6040518082815260200191505060405180910390f35b6105e96112f3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61061d611319565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065d578082015181840152602081019050610642565b50505050905090810190601f16801561068a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e4600480360360408110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113bb565b60405180821515815260200191505060405180910390f35b6107486004803603604081101561071257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061147a565b60405180821515815260200191505060405180910390f35b6107f7600480360360e081101561077657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050611491565b005b61085b6004803603604081101561080f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117f3565b6040518082815260200191505060405180910390f35b61087961187a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108ad6118a0565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109715780601f1061094657610100808354040283529160200191610971565b820191906000526020600020905b81548152906001019060200180831161095457829003601f168201915b5050505050905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8115610bf357600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580610a7d5750805b610aef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f776e61626c653a207a65726f2061646472657373000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a382600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c35565b82600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505050565b6000610c473384846118ca565b6001905092915050565b6000600254905090565b6000610c68848484611ac1565b610d1b8433610d168560405180606001604052806028815260200161240860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d829092919063ffffffff16565b6118ca565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b6000600560009054906101000a900460ff16905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e233384610e1e85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4290919063ffffffff16565b6118ca565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806124306023913960400191505060405180910390fd5b610edd8282611eca565b5050565b610eeb3382612090565b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e657281525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611203576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806123b8602a913960400191505060405180910390fd5b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61129f8282612254565b5050565b60006112ec600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206122dd565b9050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113b15780601f10611386576101008083540402835291602001916113b1565b820191906000526020600020905b81548152906001019060200180831161139457829003601f168201915b5050505050905090565b6000611470338461146b856040518060600160405280602581526020016124e160259139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d829092919063ffffffff16565b6118ca565b6001905092915050565b6000611487338484611ac1565b6001905092915050565b83421115611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5065726d69743a206578706972656420646561646c696e65000000000000000081525060200191505060405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b888888611577600660008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206122dd565b89604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001828152602001965050505050505060405160208183030381529060405280519060200120905060006119017f000000000000000000000000000000000000000000000000000000000000000083604051602001808461ffff1660f01b81526002018381526020018281526020019350505050604051602081830303815290604052805190602001209050600060018287878760405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156116af573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561172357508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611795576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b6117dc600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206122eb565b6117e78a8a8a6118ca565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124bd6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806123966022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806124986025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bcd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806123516023913960400191505060405180910390fd5b611bd8838383612301565b611c43816040518060600160405280602681526020016123e2602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d829092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cd6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611e2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611df4578082015181840152602081019050611dd9565b50505050905090810190601f168015611e215780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015611ec0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b611f78308383612301565b611f8d81600254611e4290919063ffffffff16565b600281905550611fe4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806124776021913960400191505060405180910390fd5b61212282600083612301565b61218d81604051806060016040528060228152602001612374602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d829092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e48160025461230690919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600061226083336117f3565b9050818110156122bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124536024913960400191505060405180910390fd5b600082820390506122cd8433836118ca565b6122d78484612090565b50505050565b600081600001549050919050565b6001816000016000828254019250508190555050565b505050565b600061234883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d82565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f20616464726573735661756c744f776e65643a207661756c742063616e6e6f7420626520746865203020616464726573732145524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655661756c744f776e65643a2063616c6c6572206973206e6f7420746865205661756c7445524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220295283dfd4dcfa06d2d87d49a1aaf2709760a3af0f7c40c2354358e26b15699f64736f6c63430007050033

Deployed ByteCode Sourcemap

14985:888:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6058:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13372:506;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6868:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6311:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7043:329;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10747:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6228:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10864:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7380:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15132:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15253:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13960:340;;;:::i;:::-;;14575:204;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6411:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15357:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12155:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12518:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6141:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7602:277;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6538:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11393:754;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6709:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12545:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14785:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6058:77;6095:13;6124:5;6117:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6058:77;:::o;13372:506::-;14428:5;;;;;;;;;;;14414:19;;:10;:19;;;14406:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13511:6:::1;13507:364;;;13585:1;13565:22;;:8;:22;;;;:34;;;;13591:8;13565:34;13557:68;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;13699:8;13671:37;;13692:5;;;;;;;;;;;13671:37;;;;;;;;;;;;13731:8;13723:5;;:16;;;;;;;;;;;;;;;;;;13777:1;13754:12;;:25;;;;;;;;;;;;;;;;;;13507:364;;;13851:8;13836:12;;:23;;;;;;;;;;;;;;;;;;13507:364;13372:506:::0;;;:::o;6868:167::-;6951:4;6968:37;6977:10;6989:7;6998:6;6968:8;:37::i;:::-;7023:4;7016:11;;6868:167;;;;:::o;6311:94::-;6364:7;6387:12;;6380:19;;6311:94;:::o;7043:329::-;7149:4;7166:36;7176:6;7184:9;7195:6;7166:9;:36::i;:::-;7213:129;7222:6;7230:10;7242:99;7290:6;7242:99;;;;;;;;;;;;;;;;;:11;:19;7254:6;7242:19;;;;;;;;;;;;;;;:31;7262:10;7242:31;;;;;;;;;;;;;;;;:47;;:99;;;;;:::i;:::-;7213:8;:129::i;:::-;7360:4;7353:11;;7043:329;;;;;:::o;10747:108::-;10789:66;10747:108;;;:::o;6228:77::-;6269:5;6290:9;;;;;;;;;;;6283:16;;6228:77;:::o;10864:41::-;;;:::o;7380:214::-;7468:4;7485:79;7494:10;7506:7;7515:48;7552:10;7515:11;:23;7527:10;7515:23;;;;;;;;;;;;;;;:32;7539:7;7515:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;7485:8;:79::i;:::-;7582:4;7575:11;;7380:214;;;;:::o;15132:113::-;14911:10;14901:20;;:6;;;;;;;;;;;:20;;;14892:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15213:24:::1;15219:8;15229:7;15213:5;:24::i;:::-;15132:113:::0;;:::o;15253:91::-;15311:25;15317:10;15329:6;15311:5;:25::i;:::-;15253:91;:::o;13960:340::-;14004:21;14028:12;;;;;;;;;;;14004:36;;14094:13;14080:27;;:10;:27;;;14072:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14210:13;14182:42;;14203:5;;;;;;;;;;;14182:42;;;;;;;;;;;;14243:13;14235:5;;:21;;;;;;;;;;;;;;;;;;14290:1;14267:12;;:25;;;;;;;;;;;;;;;;;;13960:340;:::o;14575:204::-;14642:4;14428:5;;;;;;;;;;;14414:19;;:10;:19;;;14406:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14682:1:::1;14664:20;;:6;:20;;;;14656:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14747:6;14738;;:15;;;;;;;;;;;;;;;;;;14769:4;14762:11;;14575:204:::0;;;:::o;6411:121::-;6485:7;6508:9;:18;6518:7;6508:18;;;;;;;;;;;;;;;;6501:25;;6411:121;;;:::o;15357:117::-;15438:28;15448:8;15458:7;15438:9;:28::i;:::-;15357:117;;:::o;12155:120::-;12216:7;12243:24;:7;:14;12251:5;12243:14;;;;;;;;;;;;;;;:22;:24::i;:::-;12236:31;;12155:120;;;:::o;12518:20::-;;;;;;;;;;;;;:::o;6141:81::-;6180:13;6209:7;6202:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6141:81;:::o;7602:277::-;7695:4;7712:137;7721:10;7733:7;7742:106;7791:15;7742:106;;;;;;;;;;;;;;;;;:11;:23;7754:10;7742:23;;;;;;;;;;;;;;;:32;7766:7;7742:32;;;;;;;;;;;;;;;;:48;;:106;;;;;:::i;:::-;7712:8;:137::i;:::-;7867:4;7860:11;;7602:277;;;;:::o;6538:163::-;6624:4;6637:40;6647:10;6659:9;6670:6;6637:9;:40::i;:::-;6691:4;6684:11;;6538:163;;;;:::o;11393:754::-;11638:8;11619:15;:27;;11611:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11688:18;10789:66;11743:15;;11760:5;11767:7;11776:6;11784:24;:7;:14;11792:5;11784:14;;;;;;;;;;;;;;;:22;:24::i;:::-;11810:8;11732:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11722:98;;;;;;11688:132;;11833:13;11883:6;11892:16;11910:10;11859:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11849:73;;;;;;11833:89;;11935:14;11952:25;11962:5;11969:1;11972;11975;11952:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11935:42;;12014:1;11996:20;;:6;:20;;;;:39;;;;;12030:5;12020:15;;:6;:15;;;11996:39;11988:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12070:26;:7;:14;12078:5;12070:14;;;;;;;;;;;;;;;:24;:26::i;:::-;12107:32;12116:5;12123:7;12132:6;12107:8;:32::i;:::-;11393:754;;;;;;;;;;:::o;6709:151::-;6798:7;6825:11;:18;6837:5;6825:18;;;;;;;;;;;;;;;:27;6844:7;6825:27;;;;;;;;;;;;;;;;6818:34;;6709:151;;;;:::o;12545:27::-;;;;;;;;;;;;;:::o;14785:73::-;14823:7;14846:6;;;;;;;;;;;14839:13;;14785:73;:::o;9248:346::-;9367:1;9350:19;;:5;:19;;;;9342:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9448:1;9429:21;;:7;:21;;;;9421:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9532:6;9502:11;:18;9514:5;9502:18;;;;;;;;;;;;;;;:27;9521:7;9502:27;;;;;;;;;;;;;;;:36;;;;9570:7;9554:32;;9563:5;9554:32;;;9579:6;9554:32;;;;;;;;;;;;;;;;;;9248:346;;;:::o;7887:527::-;8009:1;7991:20;;:6;:20;;;;7983:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8091:1;8070:23;;:9;:23;;;;8062:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8144:47;8165:6;8173:9;8184:6;8144:20;:47::i;:::-;8222:71;8244:6;8222:71;;;;;;;;;;;;;;;;;:9;:17;8232:6;8222:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;8202:9;:17;8212:6;8202:17;;;;;;;;;;;;;;;:91;;;;8325:32;8350:6;8325:9;:20;8335:9;8325:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8302:9;:20;8312:9;8302:20;;;;;;;;;;;;;;;:55;;;;8388:9;8371:35;;8380:6;8371:35;;;8399:6;8371:35;;;;;;;;;;;;;;;;;;7887:527;;;:::o;2949:192::-;3035:7;3068:1;3063;:6;;3071:12;3055:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3095:9;3111:1;3107;:5;3095:17;;3132:1;3125:8;;;2949:192;;;;;:::o;2616:181::-;2674:7;2694:9;2710:1;2706;:5;2694:17;;2735:1;2730;:6;;2722:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2788:1;2781:8;;;2616:181;;;;:::o;8422:392::-;8528:1;8508:22;;:8;:22;;;;8500:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8577:56;8607:4;8615:8;8625:7;8577:20;:56::i;:::-;8659:25;8676:7;8659:12;;:16;;:25;;;;:::i;:::-;8644:12;:40;;;;8717:32;8741:7;8717:9;:19;8727:8;8717:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;8695:9;:19;8705:8;8695:19;;;;;;;;;;;;;;;:54;;;;8788:8;8765:41;;8783:1;8765:41;;;8798:7;8765:41;;;;;;;;;;;;;;;;;;8422:392;;:::o;8822:418::-;8925:1;8906:21;;:7;:21;;;;8898:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8978:49;8999:7;9016:1;9020:6;8978:20;:49::i;:::-;9061:68;9084:6;9061:68;;;;;;;;;;;;;;;;;:9;:18;9071:7;9061:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;9040:9;:18;9050:7;9040:18;;;;;;;;;;;;;;;:89;;;;9155:24;9172:6;9155:12;;:16;;:24;;;;:::i;:::-;9140:12;:39;;;;9221:1;9195:37;;9204:7;9195:37;;;9225:6;9195:37;;;;;;;;;;;;;;;;;;8822:418;;:::o;15482:388::-;15564:17;15584:31;15594:8;15604:10;15584:9;:31::i;:::-;15564:51;;15648:7;15635:9;:20;;15626:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15714:27;15756:7;15744:9;:19;15714:49;;15776:51;15785:8;15795:10;15807:19;15776:8;:51::i;:::-;15838:24;15844:8;15854:7;15838:5;:24::i;:::-;15482:388;;;;:::o;9833:114::-;9898:7;9925;:14;;;9918:21;;9833:114;;;:::o;9955:91::-;10037:1;10019:7;:14;;;:19;;;;;;;;;;;9955:91;:::o;9600:97::-;;;;:::o;2805:136::-;2863:7;2890:43;2894:1;2897;2890:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2883:50;;2805:136;;;;:::o

Swarm Source

ipfs://295283dfd4dcfa06d2d87d49a1aaf2709760a3af0f7c40c2354358e26b15699f
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.