ETH Price: $2,879.03 (-11.17%)
Gas: 39 Gwei

Token

Fractal Protocol Vault Token (USDF)
 

Overview

Max Total Supply

2,829,874.644221 USDF

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Filtered by Token Holder
franckc.eth
Balance
2.700216 USDF

Value
$0.00
0xd85a569f3c26f81070544451131c742283360400
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Fractal is building web3 infrastructure allowing all on-chain financial assets to interact with and collateralize against each other via a universal margin account – starting with existing crypto assets and expanding to real world assets.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ReceiptToken

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-09
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.3;

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
    /**
    * Transfer token for a specified address
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function transfer(address to, uint256 value) external returns (bool);

    /**
     * Transfer tokens from one address to another.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address from, address to, uint256 value) external returns (bool);

    /**
     * Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * 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
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) external returns (bool);

    /**
     * Returns the total number of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);

    /**
    * Gets the balance of the address specified.
    * @param addr The address to query the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address addr) external view returns (uint256);

    /**
     * Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * This event is triggered when a given amount of tokens is sent to an address.
     * @param from The address of the sender
     * @param to The address of the receiver
     * @param value The amount transferred
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * This event is triggered when a given address is approved to spend a specific amount of tokens
     * on behalf of the sender.
     * @param owner The owner of the token
     * @param spender The spender
     * @param value The amount to transfer
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Represents an ownable resource.
 */
contract Ownable {
    address internal _owner;

    event OwnershipTransferred(address previousOwner, address newOwner);

    /**
     * Constructor
     * @param addr The owner of the smart contract
     */
    constructor (address addr) {
        require(addr != address(0), "non-zero address required");
        require(addr != address(1), "ecrecover address not allowed");
        _owner = addr;
        emit OwnershipTransferred(address(0), addr);
    }

    /**
     * @notice This modifier indicates that the function can only be called by the owner.
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "Only owner requirement");
        _;
    }

    /**
     * @notice Transfers ownership to the address specified.
     * @param addr Specifies the address of the new owner.
     * @dev Throws if called by any account other than the owner.
     */
    function transferOwnership (address addr) public onlyOwner {
        require(addr != address(0), "non-zero address required");
        emit OwnershipTransferred(_owner, addr);
        _owner = addr;
    }

    /**
     * @notice Destroys the smart contract.
     * @param addr The payable address of the recipient.
     */
    function destroy(address payable addr) public virtual onlyOwner {
        require(addr != address(0), "non-zero address required");
        require(addr != address(1), "ecrecover address not allowed");
        selfdestruct(addr);
    }

    /**
     * @notice Gets the address of the owner.
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @notice Indicates if the address specified is the owner of the resource.
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner(address addr) public view returns (bool) {
        return addr == _owner;
    }
}

/**
 * @title Represents an ERC-20
 */
contract ERC20 is IERC20 {
    // Basic ERC-20 data
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 internal _totalSupply;

    // The balance of each owner
    mapping(address => uint256) internal _balances;

    // The allowance set by each owner
    mapping(address => mapping(address => uint256)) private _allowances;

    /**
     * @notice Constructor
     * @param tokenName The name of the token
     * @param tokenSymbol The symbol of the token
     * @param tokenDecimals The decimals of the token
     * @param initialSupply The initial supply
     */
    constructor (string memory tokenName, string memory tokenSymbol, uint8 tokenDecimals, uint256 initialSupply) {
        _name = tokenName;
        _symbol = tokenSymbol;
        _decimals = tokenDecimals;
        _totalSupply = initialSupply;
    }

    /**
    * @notice Transfers a given amount tokens to the address specified.
    * @param from The address of the sender.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    * @return Returns true in case of success.
    */
    function executeErc20Transfer (address from, address to, uint256 value) private returns (bool) {
        // Checks
        require(to != address(0), "non-zero address required");
        require(from != address(0), "non-zero sender required");
        require(value > 0, "Amount cannot be zero");
        require(_balances[from] >= value, "Amount exceeds sender balance");

        // State changes
        _balances[from] = _balances[from] - value;
        _balances[to] = _balances[to] + value;

        // Emit the event per ERC-20
        emit Transfer(from, to, value);

        return true;
    }

    /**
     * @notice Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * @dev 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
     * @param ownerAddr The address of the owner.
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     * @return Returns true in case of success.
     */
    function approveSpender(address ownerAddr, address spender, uint256 value) private returns (bool) {
        require(spender != address(0), "non-zero spender required");
        require(ownerAddr != address(0), "non-zero owner required");

        // State changes
        _allowances[ownerAddr][spender] = value;

        // Emit the event
        emit Approval(ownerAddr, spender, value);

        return true;
    }

    /**
    * @notice Transfers a given amount tokens to the address specified.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    * @return Returns true in case of success.
    */
    function transfer(address to, uint256 value) public override returns (bool) {
        require (executeErc20Transfer(msg.sender, to, value), "Failed to execute ERC20 transfer");
        return true;
    }

    /**
     * @notice Transfer tokens from one address to another.
     * @dev Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     * @return Returns true in case of success.
     */
    function transferFrom(address from, address to, uint256 value) public override returns (bool) {
        require (executeErc20Transfer(from, to, value), "Failed to execute transferFrom");

        uint256 currentAllowance = _allowances[from][msg.sender];
        require(currentAllowance >= value, "Amount exceeds allowance");

        require(approveSpender(from, msg.sender, currentAllowance - value), "ERC20: Approval failed");

        return true;
    }

    /**
     * @notice Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * @dev 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
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     * @return Returns true in case of success.
     */
    function approve(address spender, uint256 value) public override returns (bool) {
        require(approveSpender(msg.sender, spender, value), "ERC20: Approval failed");
        return true;
    }

    /**
     * Gets the total supply of tokens
     */
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

    /**
     * @notice Gets the symbol of the token.
     */
    function symbol() public view override returns (string memory) {
        return _symbol;
    }

    /**
     * @notice Gets the decimals of the token.
     */
    function decimals() public view override returns (uint8) {
        return _decimals;
    }

    /**
    * Gets the balance of the address specified.
    * @param addr The address to query the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address addr) public view override returns (uint256) {
        return _balances[addr];
    }

    /**
     * Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
}

/**
 * @notice Represents an ERC20 that can be minted and/or burnt by multiple parties.
 */
contract Mintable is ERC20, Ownable {
    /**
     * @notice The maximum circulating supply of tokens
     */
    uint256 public maxSupply;

    // Keeps track of the authorized minters
    mapping (address => bool) internal _authorizedMinters;

    // Keeps track of the authorized burners
    mapping (address => bool) internal _authorizedBurners;

    // ---------------------------------------
    // Events
    // ---------------------------------------
    /**
     * This event is triggered whenever an address is added as a valid minter.
     * @param addr The address that became a valid minter
     */
    event OnMinterGranted(address addr);

    /**
     * This event is triggered when a minter is revoked.
     * @param addr The address that was revoked
     */
    event OnMinterRevoked(address addr);

    /**
     * This event is triggered whenever an address is added as a valid burner.
     * @param addr The address that became a valid burner
     */
    event OnBurnerGranted(address addr);

    /**
     * This event is triggered when a burner is revoked.
     * @param addr The address that was revoked
     */
    event OnBurnerRevoked(address addr);

    /**
     * This event is triggered when the maximum limit for minting tokens is updated.
     * @param prevValue The previous limit
     * @param newValue The new limit
     */
    event OnMaxSupplyChanged(uint256 prevValue, uint256 newValue);

    // ---------------------------------------
    // Constructor
    // ---------------------------------------
    /**
     * @notice Constructor
     * @param newOwner The contract owner
     * @param tokenName The name of the token
     * @param tokenSymbol The symbol of the token
     * @param tokenDecimals The decimals of the token
     * @param initialSupply The initial supply
     */
    constructor (address newOwner, string memory tokenName, string memory tokenSymbol, uint8 tokenDecimals, uint256 initialSupply)
    ERC20(tokenName, tokenSymbol, tokenDecimals, initialSupply)
    Ownable(newOwner) { // solhint-disable-line no-empty-blocks
    }

    /**
     * @notice Throws if the sender is not a valid minter
     */
    modifier onlyMinter() {
        require(_authorizedMinters[msg.sender], "Unauthorized minter");
        _;
    }

    /**
     * @notice Throws if the sender is not a valid burner
     */
    modifier onlyBurner() {
        require(_authorizedBurners[msg.sender], "Unauthorized burner");
        _;
    }

    /**
     * @notice Grants the right to issue new tokens to the address specified.
     * @dev This function can be called by the owner only.
     * @param addr The destination address
     */
    function grantMinter (address addr) public onlyOwner {
        require(!_authorizedMinters[addr], "Address authorized already");
        _authorizedMinters[addr] = true;
        emit OnMinterGranted(addr);
    }

    /**
     * @notice Revokes the right to issue new tokens from the address specified.
     * @dev This function can be called by the owner only.
     * @param addr The destination address
     */
    function revokeMinter (address addr) public onlyOwner {
        require(_authorizedMinters[addr], "Address was never authorized");
        _authorizedMinters[addr] = false;
        emit OnMinterRevoked(addr);
    }

    /**
     * @notice Grants the right to burn tokens to the address specified.
     * @dev This function can be called by the owner only.
     * @param addr The destination address
     */
    function grantBurner (address addr) public onlyOwner {
        require(!_authorizedBurners[addr], "Address authorized already");
        _authorizedBurners[addr] = true;
        emit OnBurnerGranted(addr);
    }

    /**
     * @notice Revokes the right to burn tokens from the address specified.
     * @dev This function can be called by the owner only.
     * @param addr The destination address
     */
    function revokeBurner (address addr) public onlyOwner {
        require(_authorizedBurners[addr], "Address was never authorized");
        _authorizedBurners[addr] = false;
        emit OnBurnerRevoked(addr);
    }

    /**
     * @notice Updates the maximum limit for minting tokens.
     * @param newValue The new limit
     */
    function changeMaxSupply (uint256 newValue) public onlyOwner {
        require(newValue == 0 || newValue > _totalSupply, "Invalid max supply");
        emit OnMaxSupplyChanged(maxSupply, newValue);
        maxSupply = newValue;
    }

    /**
     * @notice Issues a given number of tokens to the address specified.
     * @dev This function throws if the sender is not a whitelisted minter.
     * @param addr The destination address
     * @param amount The number of tokens
     */
    function mint (address addr, uint256 amount) public onlyMinter {
        require(addr != address(0) && addr != address(this), "Invalid address");
        require(amount > 0, "Invalid amount");
        require(canMint(amount), "Max token supply exceeded");

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

    /**
     * @notice Burns a given number of tokens from the address specified.
     * @dev This function throws if the sender is not a whitelisted minter. In this context, minters and burners have the same privileges.
     * @param addr The destination address
     * @param amount The number of tokens
     */
    function burn (address addr, uint256 amount) public onlyBurner {
        require(addr != address(0) && addr != address(this), "Invalid address");
        require(amount > 0, "Invalid amount");
        require(_totalSupply > 0, "No token supply");

        uint256 accountBalance = _balances[addr];
        require(accountBalance >= amount, "Burn amount exceeds balance");

        _balances[addr] = accountBalance - amount;
        _totalSupply -= amount;
        emit Transfer(addr, address(0), amount);
    }

    /**
     * @notice Indicates if we can issue/mint the number of tokens specified.
     * @param amount The number of tokens to issue/mint
     */
    function canMint (uint256 amount) public view returns (bool) {
        return (maxSupply == 0) || (_totalSupply + amount <= maxSupply);
    }
}

/**
 * @title Represents a receipt token. The token is fully compliant with the ERC20 interface.
 * @dev The token can be minted or burnt by whitelisted addresses only. Only the owner is allowed to enable/disable addresses.
 */
contract ReceiptToken is Mintable {
    /**
     * @notice Constructor.
     * @param newOwner The owner of the smart contract.
     */
    constructor (address newOwner, uint256 initialMaxSupply) Mintable(newOwner, "Fractal Protocol Vault Token", "USDF", 6, 0) {
        maxSupply = initialMaxSupply;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"uint256","name":"initialMaxSupply","type":"uint256"}],"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":false,"internalType":"address","name":"addr","type":"address"}],"name":"OnBurnerGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"OnBurnerRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"OnMaxSupplyChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"OnMinterGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"OnMinterRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":false,"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":[{"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"canMint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"changeMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"addr","type":"address"}],"name":"destroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"grantBurner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"grantMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"revokeBurner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"revokeMinter","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":"to","type":"address"},{"internalType":"uint256","name":"value","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":"addr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162001833380380620018338339810160408190526200003491620002a5565b816040518060400160405280601c81526020017f4672616374616c2050726f746f636f6c205661756c7420546f6b656e00000000815250604051806040016040528060048152602001632aa9a22360e11b8152506006600084848484848360009080519060200190620000a9929190620001ff565b508251620000bf906001906020860190620001ff565b506002805460ff191660ff939093169290921790915560035550506001600160a01b038116620001365760405162461bcd60e51b815260206004820152601960248201527f6e6f6e2d7a65726f20616464726573732072657175697265640000000000000060448201526064015b60405180910390fd5b6001600160a01b03811660011415620001925760405162461bcd60e51b815260206004820152601d60248201527f65637265636f7665722061646472657373206e6f7420616c6c6f77656400000060448201526064016200012d565b600680546001600160a01b0319166001600160a01b038316908117909155604080516000815260208101929092527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a1505050600793909355506200031c92505050565b8280546200020d90620002df565b90600052602060002090601f0160209004810192826200023157600085556200027c565b82601f106200024c57805160ff19168380011785556200027c565b828001600101855582156200027c579182015b828111156200027c5782518255916020019190600101906200025f565b506200028a9291506200028e565b5090565b5b808211156200028a57600081556001016200028f565b60008060408385031215620002b8578182fd5b82516001600160a01b0381168114620002cf578283fd5b6020939093015192949293505050565b600181811c90821680620002f457607f821691505b602082108114156200031657634e487b7160e01b600052602260045260246000fd5b50919050565b611507806200032c6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c806340c10f19116100b85780639dc29fac1161007c5780639dc29fac146102b6578063a9059cbb146102c9578063cfbd4885146102dc578063d5abeb01146102ef578063dd62ed3e146102f8578063f2fde38b1461033157610141565b806340c10f19146102445780635dd871a31461025757806370a082311461026a5780638da5cb5b1461029357806395d89b41146102ae57610141565b806318160ddd1161010a57806318160ddd146101c257806323b872dd146101d4578063261707fa146101e75780632f54bf6e146101fa578063313ce5671461021c578063404c7cdd1461023157610141565b8062f55d9d1461014657806306fdde031461015b5780630900cc3314610179578063095ea7b31461018c57806310511f96146101af575b600080fd5b6101596101543660046112a1565b610344565b005b610163610403565b604051610170919061137f565b60405180910390f35b6101596101873660046112a1565b610495565b61019f61019a36600461133c565b61057e565b6040519015158152602001610170565b6101596101bd3660046112a1565b6105d9565b6003545b604051908152602001610170565b61019f6101e23660046112fc565b6106c0565b6101596101f53660046112a1565b6107f1565b61019f6102083660046112a1565b6006546001600160a01b0390811691161490565b60025460405160ff9091168152602001610170565b61015961023f366004611367565b6108d8565b61015961025236600461133c565b610992565b61019f610265366004611367565b610b65565b6101c66102783660046112a1565b6001600160a01b031660009081526004602052604090205490565b6006546040516001600160a01b039091168152602001610170565b610163610b8d565b6101596102c436600461133c565b610b9c565b61019f6102d736600461133c565b610dc1565b6101596102ea3660046112a1565b610e1a565b6101c660075481565b6101c66103063660046112c4565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61015961033f3660046112a1565b610efd565b6006546001600160a01b031633146103775760405162461bcd60e51b815260040161036e906113d2565b60405180910390fd5b6001600160a01b03811661039d5760405162461bcd60e51b815260040161036e90611402565b6001600160a01b038116600114156103f75760405162461bcd60e51b815260206004820152601d60248201527f65637265636f7665722061646472657373206e6f7420616c6c6f776564000000604482015260640161036e565b806001600160a01b0316ff5b60606000805461041290611468565b80601f016020809104026020016040519081016040528092919081815260200182805461043e90611468565b801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b5050505050905090565b6006546001600160a01b031633146104bf5760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b03811660009081526009602052604090205460ff166105275760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320776173206e6576657220617574686f72697a656400000000604482015260640161036e565b6001600160a01b038116600081815260096020908152604091829020805460ff1916905590519182527ee619c4c60236830a7f101c0557547f35eab232b362b777e14c080833e59e3f91015b60405180910390a150565b600061058b338484610fb6565b6105d05760405162461bcd60e51b8152602060048201526016602482015275115490cc8c0e88105c1c1c9bdd985b0819985a5b195960521b604482015260640161036e565b50600192915050565b6006546001600160a01b031633146106035760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b03811660009081526009602052604090205460ff161561066c5760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320617574686f72697a656420616c7265616479000000000000604482015260640161036e565b6001600160a01b038116600081815260096020908152604091829020805460ff1916600117905590519182527f1e097f8b8c4e42fbb5e5fcfadac94252c1866edb4ce4c196cc43570ce1d0b4989101610573565b60006106cd8484846110cb565b6107195760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f2065786563757465207472616e7366657246726f6d0000604482015260640161036e565b6001600160a01b03841660009081526005602090815260408083203384529091529020548281101561078d5760405162461bcd60e51b815260206004820152601860248201527f416d6f756e74206578636565647320616c6c6f77616e63650000000000000000604482015260640161036e565b6107a1853361079c8685611451565b610fb6565b6107e65760405162461bcd60e51b8152602060048201526016602482015275115490cc8c0e88105c1c1c9bdd985b0819985a5b195960521b604482015260640161036e565b506001949350505050565b6006546001600160a01b0316331461081b5760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b03811660009081526008602052604090205460ff16156108845760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320617574686f72697a656420616c7265616479000000000000604482015260640161036e565b6001600160a01b038116600081815260086020908152604091829020805460ff1916600117905590519182527f760751f34f58f9677a6a9d1696da9dafac566e7a9a577e76502d60018b5a32c59101610573565b6006546001600160a01b031633146109025760405162461bcd60e51b815260040161036e906113d2565b801580610910575060035481115b6109515760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206d617820737570706c7960701b604482015260640161036e565b60075460408051918252602082018390527fe4fd3e707c42fe7e4405214e86e4f796ecfa58dfe4d17def31221e34e2e4b2b5910160405180910390a1600755565b3360009081526008602052604090205460ff166109e75760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b604482015260640161036e565b6001600160a01b03821615801590610a0857506001600160a01b0382163014155b610a465760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161036e565b60008111610a875760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b604482015260640161036e565b610a9081610b65565b610adc5760405162461bcd60e51b815260206004820152601960248201527f4d617820746f6b656e20737570706c7920657863656564656400000000000000604482015260640161036e565b8060036000828254610aee9190611439565b90915550506001600160a01b03821660009081526004602052604081208054839290610b1b908490611439565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060075460001480610b87575060075482600354610b849190611439565b11155b92915050565b60606001805461041290611468565b3360009081526009602052604090205460ff16610bf15760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b210313ab93732b960691b604482015260640161036e565b6001600160a01b03821615801590610c1257506001600160a01b0382163014155b610c505760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161036e565b60008111610c915760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b604482015260640161036e565b600060035411610cd55760405162461bcd60e51b815260206004820152600f60248201526e4e6f20746f6b656e20737570706c7960881b604482015260640161036e565b6001600160a01b03821660009081526004602052604090205481811015610d3e5760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e63650000000000604482015260640161036e565b610d488282611451565b6001600160a01b03841660009081526004602052604081209190915560038054849290610d76908490611451565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6000610dce3384846110cb565b6105d05760405162461bcd60e51b815260206004820181905260248201527f4661696c656420746f2065786563757465204552433230207472616e73666572604482015260640161036e565b6006546001600160a01b03163314610e445760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b03811660009081526008602052604090205460ff16610eac5760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320776173206e6576657220617574686f72697a656400000000604482015260640161036e565b6001600160a01b038116600081815260086020908152604091829020805460ff1916905590519182527f248a670c2f80460464b72739b2e628f40ed202cc59a58df6a5ef9128064718379101610573565b6006546001600160a01b03163314610f275760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b038116610f4d5760405162461bcd60e51b815260040161036e90611402565b600654604080516001600160a01b03928316815291831660208301527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a1600680546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b03831661100e5760405162461bcd60e51b815260206004820152601960248201527f6e6f6e2d7a65726f207370656e64657220726571756972656400000000000000604482015260640161036e565b6001600160a01b0384166110645760405162461bcd60e51b815260206004820152601760248201527f6e6f6e2d7a65726f206f776e6572207265717569726564000000000000000000604482015260640161036e565b6001600160a01b0384811660008181526005602090815260408083209488168084529482529182902086905590518581527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060019392505050565b60006001600160a01b0383166110f35760405162461bcd60e51b815260040161036e90611402565b6001600160a01b0384166111495760405162461bcd60e51b815260206004820152601860248201527f6e6f6e2d7a65726f2073656e6465722072657175697265640000000000000000604482015260640161036e565b600082116111915760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742063616e6e6f74206265207a65726f60581b604482015260640161036e565b6001600160a01b0384166000908152600460205260409020548211156111f95760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e7420657863656564732073656e6465722062616c616e6365000000604482015260640161036e565b6001600160a01b03841660009081526004602052604090205461121d908390611451565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461124d908390611439565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b99086815260200190565b6000602082840312156112b2578081fd5b81356112bd816114b9565b9392505050565b600080604083850312156112d6578081fd5b82356112e1816114b9565b915060208301356112f1816114b9565b809150509250929050565b600080600060608486031215611310578081fd5b833561131b816114b9565b9250602084013561132b816114b9565b929592945050506040919091013590565b6000806040838503121561134e578182fd5b8235611359816114b9565b946020939093013593505050565b600060208284031215611378578081fd5b5035919050565b6000602080835283518082850152825b818110156113ab5785810183015185820160400152820161138f565b818111156113bc5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526016908201527513db9b1e481bdddb995c881c995c5d5a5c995b595b9d60521b604082015260600190565b60208082526019908201527f6e6f6e2d7a65726f206164647265737320726571756972656400000000000000604082015260600190565b6000821982111561144c5761144c6114a3565b500190565b600082821015611463576114636114a3565b500390565b600181811c9082168061147c57607f821691505b6020821081141561149d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146114ce57600080fd5b5056fea2646970667358221220541bc9cc0a33e0fae3e729a5b8fb937627dd2edf9217ad1638c68f86b1fbebbe64736f6c63430008030033000000000000000000000000c692d583567cda0fde14cd3d6136c2623202ed68000000000000000000000000000000000000000000000000000000174876e800

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101415760003560e01c806340c10f19116100b85780639dc29fac1161007c5780639dc29fac146102b6578063a9059cbb146102c9578063cfbd4885146102dc578063d5abeb01146102ef578063dd62ed3e146102f8578063f2fde38b1461033157610141565b806340c10f19146102445780635dd871a31461025757806370a082311461026a5780638da5cb5b1461029357806395d89b41146102ae57610141565b806318160ddd1161010a57806318160ddd146101c257806323b872dd146101d4578063261707fa146101e75780632f54bf6e146101fa578063313ce5671461021c578063404c7cdd1461023157610141565b8062f55d9d1461014657806306fdde031461015b5780630900cc3314610179578063095ea7b31461018c57806310511f96146101af575b600080fd5b6101596101543660046112a1565b610344565b005b610163610403565b604051610170919061137f565b60405180910390f35b6101596101873660046112a1565b610495565b61019f61019a36600461133c565b61057e565b6040519015158152602001610170565b6101596101bd3660046112a1565b6105d9565b6003545b604051908152602001610170565b61019f6101e23660046112fc565b6106c0565b6101596101f53660046112a1565b6107f1565b61019f6102083660046112a1565b6006546001600160a01b0390811691161490565b60025460405160ff9091168152602001610170565b61015961023f366004611367565b6108d8565b61015961025236600461133c565b610992565b61019f610265366004611367565b610b65565b6101c66102783660046112a1565b6001600160a01b031660009081526004602052604090205490565b6006546040516001600160a01b039091168152602001610170565b610163610b8d565b6101596102c436600461133c565b610b9c565b61019f6102d736600461133c565b610dc1565b6101596102ea3660046112a1565b610e1a565b6101c660075481565b6101c66103063660046112c4565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b61015961033f3660046112a1565b610efd565b6006546001600160a01b031633146103775760405162461bcd60e51b815260040161036e906113d2565b60405180910390fd5b6001600160a01b03811661039d5760405162461bcd60e51b815260040161036e90611402565b6001600160a01b038116600114156103f75760405162461bcd60e51b815260206004820152601d60248201527f65637265636f7665722061646472657373206e6f7420616c6c6f776564000000604482015260640161036e565b806001600160a01b0316ff5b60606000805461041290611468565b80601f016020809104026020016040519081016040528092919081815260200182805461043e90611468565b801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b5050505050905090565b6006546001600160a01b031633146104bf5760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b03811660009081526009602052604090205460ff166105275760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320776173206e6576657220617574686f72697a656400000000604482015260640161036e565b6001600160a01b038116600081815260096020908152604091829020805460ff1916905590519182527ee619c4c60236830a7f101c0557547f35eab232b362b777e14c080833e59e3f91015b60405180910390a150565b600061058b338484610fb6565b6105d05760405162461bcd60e51b8152602060048201526016602482015275115490cc8c0e88105c1c1c9bdd985b0819985a5b195960521b604482015260640161036e565b50600192915050565b6006546001600160a01b031633146106035760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b03811660009081526009602052604090205460ff161561066c5760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320617574686f72697a656420616c7265616479000000000000604482015260640161036e565b6001600160a01b038116600081815260096020908152604091829020805460ff1916600117905590519182527f1e097f8b8c4e42fbb5e5fcfadac94252c1866edb4ce4c196cc43570ce1d0b4989101610573565b60006106cd8484846110cb565b6107195760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f2065786563757465207472616e7366657246726f6d0000604482015260640161036e565b6001600160a01b03841660009081526005602090815260408083203384529091529020548281101561078d5760405162461bcd60e51b815260206004820152601860248201527f416d6f756e74206578636565647320616c6c6f77616e63650000000000000000604482015260640161036e565b6107a1853361079c8685611451565b610fb6565b6107e65760405162461bcd60e51b8152602060048201526016602482015275115490cc8c0e88105c1c1c9bdd985b0819985a5b195960521b604482015260640161036e565b506001949350505050565b6006546001600160a01b0316331461081b5760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b03811660009081526008602052604090205460ff16156108845760405162461bcd60e51b815260206004820152601a60248201527f4164647265737320617574686f72697a656420616c7265616479000000000000604482015260640161036e565b6001600160a01b038116600081815260086020908152604091829020805460ff1916600117905590519182527f760751f34f58f9677a6a9d1696da9dafac566e7a9a577e76502d60018b5a32c59101610573565b6006546001600160a01b031633146109025760405162461bcd60e51b815260040161036e906113d2565b801580610910575060035481115b6109515760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964206d617820737570706c7960701b604482015260640161036e565b60075460408051918252602082018390527fe4fd3e707c42fe7e4405214e86e4f796ecfa58dfe4d17def31221e34e2e4b2b5910160405180910390a1600755565b3360009081526008602052604090205460ff166109e75760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b604482015260640161036e565b6001600160a01b03821615801590610a0857506001600160a01b0382163014155b610a465760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161036e565b60008111610a875760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b604482015260640161036e565b610a9081610b65565b610adc5760405162461bcd60e51b815260206004820152601960248201527f4d617820746f6b656e20737570706c7920657863656564656400000000000000604482015260640161036e565b8060036000828254610aee9190611439565b90915550506001600160a01b03821660009081526004602052604081208054839290610b1b908490611439565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060075460001480610b87575060075482600354610b849190611439565b11155b92915050565b60606001805461041290611468565b3360009081526009602052604090205460ff16610bf15760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b210313ab93732b960691b604482015260640161036e565b6001600160a01b03821615801590610c1257506001600160a01b0382163014155b610c505760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161036e565b60008111610c915760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b604482015260640161036e565b600060035411610cd55760405162461bcd60e51b815260206004820152600f60248201526e4e6f20746f6b656e20737570706c7960881b604482015260640161036e565b6001600160a01b03821660009081526004602052604090205481811015610d3e5760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e63650000000000604482015260640161036e565b610d488282611451565b6001600160a01b03841660009081526004602052604081209190915560038054849290610d76908490611451565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6000610dce3384846110cb565b6105d05760405162461bcd60e51b815260206004820181905260248201527f4661696c656420746f2065786563757465204552433230207472616e73666572604482015260640161036e565b6006546001600160a01b03163314610e445760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b03811660009081526008602052604090205460ff16610eac5760405162461bcd60e51b815260206004820152601c60248201527f4164647265737320776173206e6576657220617574686f72697a656400000000604482015260640161036e565b6001600160a01b038116600081815260086020908152604091829020805460ff1916905590519182527f248a670c2f80460464b72739b2e628f40ed202cc59a58df6a5ef9128064718379101610573565b6006546001600160a01b03163314610f275760405162461bcd60e51b815260040161036e906113d2565b6001600160a01b038116610f4d5760405162461bcd60e51b815260040161036e90611402565b600654604080516001600160a01b03928316815291831660208301527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a1600680546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b03831661100e5760405162461bcd60e51b815260206004820152601960248201527f6e6f6e2d7a65726f207370656e64657220726571756972656400000000000000604482015260640161036e565b6001600160a01b0384166110645760405162461bcd60e51b815260206004820152601760248201527f6e6f6e2d7a65726f206f776e6572207265717569726564000000000000000000604482015260640161036e565b6001600160a01b0384811660008181526005602090815260408083209488168084529482529182902086905590518581527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060019392505050565b60006001600160a01b0383166110f35760405162461bcd60e51b815260040161036e90611402565b6001600160a01b0384166111495760405162461bcd60e51b815260206004820152601860248201527f6e6f6e2d7a65726f2073656e6465722072657175697265640000000000000000604482015260640161036e565b600082116111915760405162461bcd60e51b8152602060048201526015602482015274416d6f756e742063616e6e6f74206265207a65726f60581b604482015260640161036e565b6001600160a01b0384166000908152600460205260409020548211156111f95760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e7420657863656564732073656e6465722062616c616e6365000000604482015260640161036e565b6001600160a01b03841660009081526004602052604090205461121d908390611451565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461124d908390611439565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110b99086815260200190565b6000602082840312156112b2578081fd5b81356112bd816114b9565b9392505050565b600080604083850312156112d6578081fd5b82356112e1816114b9565b915060208301356112f1816114b9565b809150509250929050565b600080600060608486031215611310578081fd5b833561131b816114b9565b9250602084013561132b816114b9565b929592945050506040919091013590565b6000806040838503121561134e578182fd5b8235611359816114b9565b946020939093013593505050565b600060208284031215611378578081fd5b5035919050565b6000602080835283518082850152825b818110156113ab5785810183015185820160400152820161138f565b818111156113bc5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526016908201527513db9b1e481bdddb995c881c995c5d5a5c995b595b9d60521b604082015260600190565b60208082526019908201527f6e6f6e2d7a65726f206164647265737320726571756972656400000000000000604082015260600190565b6000821982111561144c5761144c6114a3565b500190565b600082821015611463576114636114a3565b500390565b600181811c9082168061147c57607f821691505b6020821081141561149d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146114ce57600080fd5b5056fea2646970667358221220541bc9cc0a33e0fae3e729a5b8fb937627dd2edf9217ad1638c68f86b1fbebbe64736f6c63430008030033

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

000000000000000000000000c692d583567cda0fde14cd3d6136c2623202ed68000000000000000000000000000000000000000000000000000000174876e800

-----Decoded View---------------
Arg [0] : newOwner (address): 0xc692d583567cdA0fDE14Cd3D6136c2623202Ed68
Arg [1] : initialMaxSupply (uint256): 100000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c692d583567cda0fde14cd3d6136c2623202ed68
Arg [1] : 000000000000000000000000000000000000000000000000000000174876e800


Deployed Bytecode Sourcemap

19022:317:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4739:239;;;;;;:::i;:::-;;:::i;:::-;;11047:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16398:218;;;;;;:::i;:::-;;:::i;10613:198::-;;;;;;:::i;:::-;;:::i;:::-;;;2627:14:1;;2620:22;2602:41;;2590:2;2575:18;10613:198:0;2557:92:1;15976:215:0;;;;;;:::i;:::-;;:::i;10877:100::-;10957:12;;10877:100;;;11158:25:1;;;11146:2;11131:18;10877:100:0;11113:76:1;9443:466:0;;;;;;:::i;:::-;;:::i;15127:215::-;;;;;;:::i;:::-;;:::i;5346:98::-;;;;;;:::i;:::-;5430:6;;-1:-1:-1;;;;;5430:6:0;;;5422:14;;;;5346:98;11381:92;11456:9;;11381:92;;11456:9;;;;11589:36:1;;11577:2;11562:18;11381:92:0;11544:87:1;16742:237:0;;;;;;:::i;:::-;;:::i;17243:386::-;;;;;;:::i;:::-;;:::i;18640:143::-;;;;;;:::i;:::-;;:::i;11683:113::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11773:15:0;11746:7;11773:15;;;:9;:15;;;;;;;11683:113;5093:79;5158:6;;5093:79;;-1:-1:-1;;;;;5158:6:0;;;2091:51:1;;2079:2;2064:18;5093:79:0;2046:102:1;11211:96:0;;;:::i;17957:521::-;;;;;;:::i;:::-;;:::i;8707:206::-;;;;;;:::i;:::-;;:::i;15554:218::-;;;;;;:::i;:::-;;:::i;12493:24::-;;;;;;12130:143;;;;;;:::i;:::-;-1:-1:-1;;;;;12238:18:0;;;12211:7;12238:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12130:143;4402:208;;;;;;:::i;:::-;;:::i;4739:239::-;5430:6;;-1:-1:-1;;;;;5430:6:0;4129:10;5422:14;4113:54;;;;-1:-1:-1;;;4113:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;4822:18:0;::::1;4814:56;;;;-1:-1:-1::0;;;4814:56:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4889:18:0;::::1;4905:1;4889:18;;4881:60;;;::::0;-1:-1:-1;;;4881:60:0;;5559:2:1;4881:60:0::1;::::0;::::1;5541:21:1::0;5598:2;5578:18;;;5571:30;5637:31;5617:18;;;5610:59;5686:18;;4881:60:0::1;5531:179:1::0;4881:60:0::1;4965:4;-1:-1:-1::0;;;;;4952:18:0::1;;11047:92:::0;11093:13;11126:5;11119:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11047:92;:::o;16398:218::-;5430:6;;-1:-1:-1;;;;;5430:6:0;4129:10;5422:14;4113:54;;;;-1:-1:-1;;;4113:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16471:24:0;::::1;;::::0;;;:18:::1;:24;::::0;;;;;::::1;;16463:65;;;::::0;-1:-1:-1;;;16463:65:0;;3808:2:1;16463:65:0::1;::::0;::::1;3790:21:1::0;3847:2;3827:18;;;3820:30;3886;3866:18;;;3859:58;3934:18;;16463:65:0::1;3780:178:1::0;16463:65:0::1;-1:-1:-1::0;;;;;16539:24:0;::::1;16566:5;16539:24:::0;;;:18:::1;:24;::::0;;;;;;;;:32;;-1:-1:-1;;16539:32:0::1;::::0;;16587:21;;2091:51:1;;;16587:21:0::1;::::0;2064:18:1;16587:21:0::1;;;;;;;;16398:218:::0;:::o;10613:198::-;10687:4;10712:42;10727:10;10739:7;10748:5;10712:14;:42::i;:::-;10704:77;;;;-1:-1:-1;;;10704:77:0;;4860:2:1;10704:77:0;;;4842:21:1;4899:2;4879:18;;;4872:30;-1:-1:-1;;;4918:18:1;;;4911:52;4980:18;;10704:77:0;4832:172:1;10704:77:0;-1:-1:-1;10799:4:0;10613:198;;;;:::o;15976:215::-;5430:6;;-1:-1:-1;;;;;5430:6:0;4129:10;5422:14;4113:54;;;;-1:-1:-1;;;4113:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16049:24:0;::::1;;::::0;;;:18:::1;:24;::::0;;;;;::::1;;16048:25;16040:64;;;::::0;-1:-1:-1;;;16040:64:0;;10859:2:1;16040:64:0::1;::::0;::::1;10841:21:1::0;10898:2;10878:18;;;10871:30;10937:28;10917:18;;;10910:56;10983:18;;16040:64:0::1;10831:176:1::0;16040:64:0::1;-1:-1:-1::0;;;;;16115:24:0;::::1;;::::0;;;:18:::1;:24;::::0;;;;;;;;:31;;-1:-1:-1;;16115:31:0::1;16142:4;16115:31;::::0;;16162:21;;2091:51:1;;;16162:21:0::1;::::0;2064:18:1;16162:21:0::1;2046:102:1::0;9443:466:0;9531:4;9557:37;9578:4;9584:2;9588:5;9557:20;:37::i;:::-;9548:81;;;;-1:-1:-1;;;9548:81:0;;6275:2:1;9548:81:0;;;6257:21:1;6314:2;6294:18;;;6287:30;6353:32;6333:18;;;6326:60;6403:18;;9548:81:0;6247:180:1;9548:81:0;-1:-1:-1;;;;;9669:17:0;;9642:24;9669:17;;;:11;:17;;;;;;;;9687:10;9669:29;;;;;;;;9717:25;;;;9709:62;;;;-1:-1:-1;;;9709:62:0;;8391:2:1;9709:62:0;;;8373:21:1;8430:2;8410:18;;;8403:30;8469:26;8449:18;;;8442:54;8513:18;;9709:62:0;8363:174:1;9709:62:0;9792:58;9807:4;9813:10;9825:24;9844:5;9825:16;:24;:::i;:::-;9792:14;:58::i;:::-;9784:93;;;;-1:-1:-1;;;9784:93:0;;4860:2:1;9784:93:0;;;4842:21:1;4899:2;4879:18;;;4872:30;-1:-1:-1;;;4918:18:1;;;4911:52;4980:18;;9784:93:0;4832:172:1;9784:93:0;-1:-1:-1;9897:4:0;;9443:466;-1:-1:-1;;;;9443:466:0:o;15127:215::-;5430:6;;-1:-1:-1;;;;;5430:6:0;4129:10;5422:14;4113:54;;;;-1:-1:-1;;;4113:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15200:24:0;::::1;;::::0;;;:18:::1;:24;::::0;;;;;::::1;;15199:25;15191:64;;;::::0;-1:-1:-1;;;15191:64:0;;10859:2:1;15191:64:0::1;::::0;::::1;10841:21:1::0;10898:2;10878:18;;;10871:30;10937:28;10917:18;;;10910:56;10983:18;;15191:64:0::1;10831:176:1::0;15191:64:0::1;-1:-1:-1::0;;;;;15266:24:0;::::1;;::::0;;;:18:::1;:24;::::0;;;;;;;;:31;;-1:-1:-1;;15266:31:0::1;15293:4;15266:31;::::0;;15313:21;;2091:51:1;;;15313:21:0::1;::::0;2064:18:1;15313:21:0::1;2046:102:1::0;16742:237:0;5430:6;;-1:-1:-1;;;;;5430:6:0;4129:10;5422:14;4113:54;;;;-1:-1:-1;;;4113:54:0;;;;;;;:::i;:::-;16822:13;;;:40:::1;;;16850:12;;16839:8;:23;16822:40;16814:71;;;::::0;-1:-1:-1;;;16814:71:0;;6987:2:1;16814:71:0::1;::::0;::::1;6969:21:1::0;7026:2;7006:18;;;6999:30;-1:-1:-1;;;7045:18:1;;;7038:48;7103:18;;16814:71:0::1;6959:168:1::0;16814:71:0::1;16920:9;::::0;16901:39:::1;::::0;;11368:25:1;;;11424:2;11409:18;;11402:34;;;16901:39:0::1;::::0;11341:18:1;16901:39:0::1;;;;;;;16951:9;:20:::0;16742:237::o;17243:386::-;14663:10;14644:30;;;;:18;:30;;;;;;;;14636:62;;;;-1:-1:-1;;;14636:62:0;;5211:2:1;14636:62:0;;;5193:21:1;5250:2;5230:18;;;5223:30;-1:-1:-1;;;5269:18:1;;;5262:49;5328:18;;14636:62:0;5183:169:1;14636:62:0;-1:-1:-1;;;;;17325:18:0;::::1;::::0;;::::1;::::0;:43:::1;;-1:-1:-1::0;;;;;;17347:21:0;::::1;17363:4;17347:21;;17325:43;17317:71;;;::::0;-1:-1:-1;;;17317:71:0;;3464:2:1;17317:71:0::1;::::0;::::1;3446:21:1::0;3503:2;3483:18;;;3476:30;-1:-1:-1;;;3522:18:1;;;3515:45;3577:18;;17317:71:0::1;3436:165:1::0;17317:71:0::1;17416:1;17407:6;:10;17399:37;;;::::0;-1:-1:-1;;;17399:37:0;;4517:2:1;17399:37:0::1;::::0;::::1;4499:21:1::0;4556:2;4536:18;;;4529:30;-1:-1:-1;;;4575:18:1;;;4568:44;4629:18;;17399:37:0::1;4489:164:1::0;17399:37:0::1;17455:15;17463:6;17455:7;:15::i;:::-;17447:53;;;::::0;-1:-1:-1;;;17447:53:0;;9088:2:1;17447:53:0::1;::::0;::::1;9070:21:1::0;9127:2;9107:18;;;9100:30;9166:27;9146:18;;;9139:55;9211:18;;17447:53:0::1;9060:175:1::0;17447:53:0::1;17529:6;17513:12;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;17546:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;:25;;17565:6;;17546:15;:25:::1;::::0;17565:6;;17546:25:::1;:::i;:::-;::::0;;;-1:-1:-1;;17587:34:0::1;::::0;11158:25:1;;;-1:-1:-1;;;;;17587:34:0;::::1;::::0;17604:1:::1;::::0;17587:34:::1;::::0;11146:2:1;11131:18;17587:34:0::1;;;;;;;17243:386:::0;;:::o;18640:143::-;18695:4;18720:9;;18733:1;18720:14;18719:56;;;;18765:9;;18755:6;18740:12;;:21;;;;:::i;:::-;:34;;18719:56;18712:63;18640:143;-1:-1:-1;;18640:143:0:o;11211:96::-;11259:13;11292:7;11285:14;;;;;:::i;17957:521::-;14863:10;14844:30;;;;:18;:30;;;;;;;;14836:62;;;;-1:-1:-1;;;14836:62:0;;10150:2:1;14836:62:0;;;10132:21:1;10189:2;10169:18;;;10162:30;-1:-1:-1;;;10208:18:1;;;10201:49;10267:18;;14836:62:0;10122:169:1;14836:62:0;-1:-1:-1;;;;;18039:18:0;::::1;::::0;;::::1;::::0;:43:::1;;-1:-1:-1::0;;;;;;18061:21:0;::::1;18077:4;18061:21;;18039:43;18031:71;;;::::0;-1:-1:-1;;;18031:71:0;;3464:2:1;18031:71:0::1;::::0;::::1;3446:21:1::0;3503:2;3483:18;;;3476:30;-1:-1:-1;;;3522:18:1;;;3515:45;3577:18;;18031:71:0::1;3436:165:1::0;18031:71:0::1;18130:1;18121:6;:10;18113:37;;;::::0;-1:-1:-1;;;18113:37:0;;4517:2:1;18113:37:0::1;::::0;::::1;4499:21:1::0;4556:2;4536:18;;;4529:30;-1:-1:-1;;;4575:18:1;;;4568:44;4629:18;;18113:37:0::1;4489:164:1::0;18113:37:0::1;18184:1;18169:12;;:16;18161:44;;;::::0;-1:-1:-1;;;18161:44:0;;8744:2:1;18161:44:0::1;::::0;::::1;8726:21:1::0;8783:2;8763:18;;;8756:30;-1:-1:-1;;;8802:18:1;;;8795:45;8857:18;;18161:44:0::1;8716:165:1::0;18161:44:0::1;-1:-1:-1::0;;;;;18243:15:0;::::1;18218:22;18243:15:::0;;;:9:::1;:15;::::0;;;;;18277:24;;::::1;;18269:64;;;::::0;-1:-1:-1;;;18269:64:0;;7684:2:1;18269:64:0::1;::::0;::::1;7666:21:1::0;7723:2;7703:18;;;7696:30;7762:29;7742:18;;;7735:57;7809:18;;18269:64:0::1;7656:177:1::0;18269:64:0::1;18364:23;18381:6:::0;18364:14;:23:::1;:::i;:::-;-1:-1:-1::0;;;;;18346:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;:41;;;;18398:12:::1;:22:::0;;18414:6;;18346:15;18398:22:::1;::::0;18414:6;;18398:22:::1;:::i;:::-;::::0;;;-1:-1:-1;;18436:34:0::1;::::0;11158:25:1;;;18459:1:0::1;::::0;-1:-1:-1;;;;;18436:34:0;::::1;::::0;::::1;::::0;11146:2:1;11131:18;18436:34:0::1;;;;;;;14909:1;17957:521:::0;;:::o;8707:206::-;8777:4;8803:43;8824:10;8836:2;8840:5;8803:20;:43::i;:::-;8794:89;;;;-1:-1:-1;;;8794:89:0;;10498:2:1;8794:89:0;;;10480:21:1;;;10517:18;;;10510:30;10576:34;10556:18;;;10549:62;10628:18;;8794:89:0;10470:182:1;15554:218:0;5430:6;;-1:-1:-1;;;;;5430:6:0;4129:10;5422:14;4113:54;;;;-1:-1:-1;;;4113:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15627:24:0;::::1;;::::0;;;:18:::1;:24;::::0;;;;;::::1;;15619:65;;;::::0;-1:-1:-1;;;15619:65:0;;3808:2:1;15619:65:0::1;::::0;::::1;3790:21:1::0;3847:2;3827:18;;;3820:30;3886;3866:18;;;3859:58;3934:18;;15619:65:0::1;3780:178:1::0;15619:65:0::1;-1:-1:-1::0;;;;;15695:24:0;::::1;15722:5;15695:24:::0;;;:18:::1;:24;::::0;;;;;;;;:32;;-1:-1:-1;;15695:32:0::1;::::0;;15743:21;;2091:51:1;;;15743:21:0::1;::::0;2064:18:1;15743:21:0::1;2046:102:1::0;4402:208:0;5430:6;;-1:-1:-1;;;;;5430:6:0;4129:10;5422:14;4113:54;;;;-1:-1:-1;;;4113:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4480:18:0;::::1;4472:56;;;;-1:-1:-1::0;;;4472:56:0::1;;;;;;;:::i;:::-;4565:6;::::0;4544:34:::1;::::0;;-1:-1:-1;;;;;4565:6:0;;::::1;2365:34:1::0;;2435:15;;;2430:2;2415:18;;2408:43;4544:34:0::1;::::0;2300:18:1;4544:34:0::1;;;;;;;4589:6;:13:::0;;-1:-1:-1;;;;;;4589:13:0::1;-1:-1:-1::0;;;;;4589:13:0;;;::::1;::::0;;;::::1;::::0;;4402:208::o;8038:428::-;8130:4;-1:-1:-1;;;;;8155:21:0;;8147:59;;;;-1:-1:-1;;;8147:59:0;;9796:2:1;8147:59:0;;;9778:21:1;9835:2;9815:18;;;9808:30;9874:27;9854:18;;;9847:55;9919:18;;8147:59:0;9768:175:1;8147:59:0;-1:-1:-1;;;;;8225:23:0;;8217:59;;;;-1:-1:-1;;;8217:59:0;;4165:2:1;8217:59:0;;;4147:21:1;4204:2;4184:18;;;4177:30;4243:25;4223:18;;;4216:53;4286:18;;8217:59:0;4137:173:1;8217:59:0;-1:-1:-1;;;;;8315:22:0;;;;;;;:11;:22;;;;;;;;:31;;;;;;;;;;;;;:39;;;8399:35;;11158:25:1;;;8399:35:0;;11131:18:1;8399:35:0;;;;;;;;-1:-1:-1;8454:4:0;8038:428;;;;;:::o;6666:617::-;6755:4;-1:-1:-1;;;;;6799:16:0;;6791:54;;;;-1:-1:-1;;;6791:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6864:18:0;;6856:55;;;;-1:-1:-1;;;6856:55:0;;6634:2:1;6856:55:0;;;6616:21:1;6673:2;6653:18;;;6646:30;6712:26;6692:18;;;6685:54;6756:18;;6856:55:0;6606:174:1;6856:55:0;6938:1;6930:5;:9;6922:43;;;;-1:-1:-1;;;6922:43:0;;7334:2:1;6922:43:0;;;7316:21:1;7373:2;7353:18;;;7346:30;-1:-1:-1;;;7392:18:1;;;7385:51;7453:18;;6922:43:0;7306:171:1;6922:43:0;-1:-1:-1;;;;;6984:15:0;;;;;;:9;:15;;;;;;:24;-1:-1:-1;6984:24:0;6976:66;;;;-1:-1:-1;;;6976:66:0;;5917:2:1;6976:66:0;;;5899:21:1;5956:2;5936:18;;;5929:30;5995:31;5975:18;;;5968:59;6044:18;;6976:66:0;5889:179:1;6976:66:0;-1:-1:-1;;;;;7099:15:0;;;;;;:9;:15;;;;;;:23;;7117:5;;7099:23;:::i;:::-;-1:-1:-1;;;;;7081:15:0;;;;;;;:9;:15;;;;;;:41;;;;7149:13;;;;;;;:21;;7165:5;;7149:21;:::i;:::-;-1:-1:-1;;;;;7133:13:0;;;;;;;:9;:13;;;;;;;:37;;;;7226:25;;;;;;;;;;7245:5;11158:25:1;;11146:2;11131:18;;11113:76;14:257;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:1:o;546:398::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:31;784:5;759:31;:::i;:::-;809:5;-1:-1:-1;866:2:1;851:18;;838:32;879:33;838:32;879:33;:::i;:::-;931:7;921:17;;;633:311;;;;;:::o;949:466::-;;;;1095:2;1083:9;1074:7;1070:23;1066:32;1063:2;;;1116:6;1108;1101:22;1063:2;1160:9;1147:23;1179:31;1204:5;1179:31;:::i;:::-;1229:5;-1:-1:-1;1286:2:1;1271:18;;1258:32;1299:33;1258:32;1299:33;:::i;:::-;1053:362;;1351:7;;-1:-1:-1;;;1405:2:1;1390:18;;;;1377:32;;1053:362::o;1420:325::-;;;1549:2;1537:9;1528:7;1524:23;1520:32;1517:2;;;1570:6;1562;1555:22;1517:2;1614:9;1601:23;1633:31;1658:5;1633:31;:::i;:::-;1683:5;1735:2;1720:18;;;;1707:32;;-1:-1:-1;;;1507:238:1:o;1750:190::-;;1862:2;1850:9;1841:7;1837:23;1833:32;1830:2;;;1883:6;1875;1868:22;1830:2;-1:-1:-1;1911:23:1;;1820:120;-1:-1:-1;1820:120:1:o;2654:603::-;;2795:2;2824;2813:9;2806:21;2856:6;2850:13;2899:6;2894:2;2883:9;2879:18;2872:34;2924:4;2937:140;2951:6;2948:1;2945:13;2937:140;;;3046:14;;;3042:23;;3036:30;3012:17;;;3031:2;3008:26;3001:66;2966:10;;2937:140;;;3095:6;3092:1;3089:13;3086:2;;;3165:4;3160:2;3151:6;3140:9;3136:22;3132:31;3125:45;3086:2;-1:-1:-1;3241:2:1;3220:15;-1:-1:-1;;3216:29:1;3201:45;;;;3248:2;3197:54;;2775:482;-1:-1:-1;;;2775:482:1:o;7838:346::-;8040:2;8022:21;;;8079:2;8059:18;;;8052:30;-1:-1:-1;;;8113:2:1;8098:18;;8091:52;8175:2;8160:18;;8012:172::o;9240:349::-;9442:2;9424:21;;;9481:2;9461:18;;;9454:30;9520:27;9515:2;9500:18;;9493:55;9580:2;9565:18;;9414:175::o;11636:128::-;;11707:1;11703:6;11700:1;11697:13;11694:2;;;11713:18;;:::i;:::-;-1:-1:-1;11749:9:1;;11684:80::o;11769:125::-;;11837:1;11834;11831:8;11828:2;;;11842:18;;:::i;:::-;-1:-1:-1;11879:9:1;;11818:76::o;11899:380::-;11978:1;11974:12;;;;12021;;;12042:2;;12096:4;12088:6;12084:17;12074:27;;12042:2;12149;12141:6;12138:14;12118:18;12115:38;12112:2;;;12195:10;12190:3;12186:20;12183:1;12176:31;12230:4;12227:1;12220:15;12258:4;12255:1;12248:15;12112:2;;11954:325;;;:::o;12284:127::-;12345:10;12340:3;12336:20;12333:1;12326:31;12376:4;12373:1;12366:15;12400:4;12397:1;12390:15;12416:131;-1:-1:-1;;;;;12491:31:1;;12481:42;;12471:2;;12537:1;12534;12527:12;12471:2;12461:86;:::o

Swarm Source

ipfs://541bc9cc0a33e0fae3e729a5b8fb937627dd2edf9217ad1638c68f86b1fbebbe
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.