ETH Price: $3,278.00 (-1.57%)
Gas: 4.33 Gwei

Token

Flashstake (FLASH)
 

Overview

Max Total Supply

26,017,311.459474794313638167 FLASH

Holders

1,589 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,383 FLASH

Value
$0.00
0x4361ddf937d79a5a5b4d129f9854f915f992fb14
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
FlashToken

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-03-31
*/

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

library SafeMath {
    function add(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require((z = x + y) >= x, "MATH:ADD_OVERFLOW");
    }

    function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require((z = x - y) <= x, "MATH:SUB_UNDERFLOW");
    }
}

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

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

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

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

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

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

// Lightweight token modelled after UNI-LP:
// https://github.com/Uniswap/uniswap-v2-core/blob/v1.0.1/contracts/UniswapV2ERC20.sol
// Adds:
//   - An exposed `mint()` with minting role
//   - An exposed `burn()`
//   - ERC-3009 (`transferWithAuthorization()`)
contract FlashToken is IERC20 {
    using SafeMath for uint256;

    // bytes32 private constant EIP712DOMAIN_HASH =
    // keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)")
    bytes32 private constant EIP712DOMAIN_HASH = 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;

    // bytes32 private constant NAME_HASH = keccak256("FLASH")
    bytes32 private constant NAME_HASH = 0x345b72c36b14f1cee01efb8ac4b299dc7b8d873e28b4796034548a3d371a4d2f;

    // bytes32 private constant VERSION_HASH = keccak256("2")
    bytes32 private constant VERSION_HASH = 0xad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5;

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

    // bytes32 public constant TRANSFER_WITH_AUTHORIZATION_TYPEHASH =
    // keccak256("TransferWithAuthorization(address from,address to,uint256 value,uint256 validAfter,uint256 validBefore,bytes32 nonce)");
    bytes32 public constant TRANSFER_WITH_AUTHORIZATION_TYPEHASH = 0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267;

    string public constant name = "Flashstake";
    string public constant symbol = "FLASH";
    uint8 public constant decimals = 18;

    address public constant FLASH_PROTOCOL = 0x15EB0c763581329C921C8398556EcFf85Cc48275;
    address public constant FLASH_CLAIM = 0xf2319b6D2aB252d8D80D8CEC34DaF0079222A624;

    uint256 public override totalSupply;

    mapping(address => uint256) public override balanceOf;
    mapping(address => mapping(address => uint256)) public override allowance;

    // ERC-2612, ERC-3009 state
    mapping(address => uint256) public nonces;
    mapping(address => mapping(bytes32 => bool)) public authorizationState;

    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce);

    modifier onlyMinter {
        require(msg.sender == FLASH_PROTOCOL || msg.sender == FLASH_CLAIM, "FlashToken:: NOT_MINTER");
        _;
    }

    constructor() {
        // BlockZero Labs: Foundation Fund
        _mint(0x842f8f6fB524996d0b660621DA895166E1ceA691, 1200746000000000000000000);
        _mint(0x0945d9033147F27aDDFd3e7532ECD2100cb91032, 1000000000000000000000000);
    }

    function _validateSignedData(
        address signer,
        bytes32 encodeData,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal view {
        bytes32 digest = keccak256(abi.encodePacked("\x19\x01", getDomainSeparator(), encodeData));
        address recoveredAddress = ecrecover(digest, v, r, s);
        // Explicitly disallow authorizations for address(0) as ecrecover returns address(0) on malformed messages
        require(recoveredAddress != address(0) && recoveredAddress == signer, "FlashToken:: INVALID_SIGNATURE");
    }

    function _mint(address to, uint256 value) internal {
        totalSupply = totalSupply.add(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint256 value) internal {
        // Balance is implicitly checked with SafeMath's underflow protection
        balanceOf[from] = balanceOf[from].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Transfer(from, address(0), value);
    }

    function _approve(
        address owner,
        address spender,
        uint256 value
    ) private {
        allowance[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _transfer(
        address from,
        address to,
        uint256 value
    ) private {
        require(to != address(this) && to != address(0), "FlashToken:: RECEIVER_IS_TOKEN_OR_ZERO");

        // Balance is implicitly checked with SafeMath's underflow protection
        balanceOf[from] = balanceOf[from].sub(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(from, to, value);
    }

    function getChainId() public pure returns (uint256 chainId) {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            chainId := chainid()
        }
    }

    function getDomainSeparator() public view returns (bytes32) {
        return keccak256(abi.encode(EIP712DOMAIN_HASH, NAME_HASH, VERSION_HASH, getChainId(), address(this)));
    }

    function mint(address to, uint256 value) external onlyMinter returns (bool) {
        _mint(to, value);
        return true;
    }

    function burn(uint256 value) external returns (bool) {
        _burn(msg.sender, value);
        return true;
    }

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

    function transfer(address to, uint256 value) external override returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external override returns (bool) {
        uint256 fromAllowance = allowance[from][msg.sender];
        if (fromAllowance != uint256(-1)) {
            // Allowance is implicitly checked with SafeMath's underflow protection
            allowance[from][msg.sender] = fromAllowance.sub(value);
        }
        _transfer(from, to, value);
        return true;
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external {
        require(deadline >= block.timestamp, "FlashToken:: AUTH_EXPIRED");

        bytes32 encodeData = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner], deadline));
        nonces[owner] = nonces[owner].add(1);
        _validateSignedData(owner, encodeData, v, r, s);

        _approve(owner, spender, value);
    }

    function transferWithAuthorization(
        address from,
        address to,
        uint256 value,
        uint256 validAfter,
        uint256 validBefore,
        bytes32 nonce,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external {
        require(block.timestamp > validAfter, "FlashToken:: AUTH_NOT_YET_VALID");
        require(block.timestamp < validBefore, "FlashToken:: AUTH_EXPIRED");
        require(!authorizationState[from][nonce], "FlashToken:: AUTH_ALREADY_USED");

        bytes32 encodeData = keccak256(abi.encode(TRANSFER_WITH_AUTHORIZATION_TYPEHASH, from, to, value, validAfter, validBefore, nonce));
        _validateSignedData(from, encodeData, v, r, s);

        authorizationState[from][nonce] = true;
        emit AuthorizationUsed(from, nonce);

        _transfer(from, to, value);
    }
}

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":"authorizer","type":"address"},{"indexed":true,"internalType":"bytes32","name":"nonce","type":"bytes32"}],"name":"AuthorizationUsed","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":"FLASH_CLAIM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FLASH_PROTOCOL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRANSFER_WITH_AUTHORIZATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"authorizationState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getDomainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","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":[],"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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"validAfter","type":"uint256"},{"internalType":"uint256","name":"validBefore","type":"uint256"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"transferWithAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5061003973842f8f6fb524996d0b660621da895166e1cea69169fe449232f70957680000610066565b610061730945d9033147f27addfd3e7532ecd2100cb9103269d3c21bcecceda1000000610066565b61015a565b61007f8160005461010860201b610ae21790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546100b0918390610ae2610108821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610154576040805162461bcd60e51b81526020600482015260116024820152704d4154483a4144445f4f564552464c4f5760781b604482015290519081900360640190fd5b92915050565b610f92806101696000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637ecebe00116100b8578063c2801bbf1161007c578063c2801bbf1461036c578063d505accf14610374578063dd62ed3e146103c7578063e3ee160e146103f5578063e94a010214610454578063ed24911d1461048057610137565b80637ecebe00146102e657806395d89b411461030c578063a0cc6a6814610314578063a7f0e9031461031c578063a9059cbb1461034057610137565b8063313ce567116100ff578063313ce567146102515780633408e4701461026f57806340c10f191461027757806342966c68146102a357806370a08231146102c057610137565b806306fdde031461013c578063095ea7b3146101b957806318160ddd146101f957806323b872dd1461021357806330adf81f14610249575b600080fd5b610144610488565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e5600480360360408110156101cf57600080fd5b506001600160a01b0381351690602001356104ae565b604080519115158252519081900360200190f35b6102016104c5565b60408051918252519081900360200190f35b6101e56004803603606081101561022957600080fd5b506001600160a01b038135811691602081013590911690604001356104cb565b61020161053d565b610259610561565b6040805160ff9092168252519081900360200190f35b610201610566565b6101e56004803603604081101561028d57600080fd5b506001600160a01b03813516906020013561056a565b6101e5600480360360208110156102b957600080fd5b50356105fc565b610201600480360360208110156102d657600080fd5b50356001600160a01b0316610610565b610201600480360360208110156102fc57600080fd5b50356001600160a01b0316610622565b610144610634565b610201610655565b610324610679565b604080516001600160a01b039092168252519081900360200190f35b6101e56004803603604081101561035657600080fd5b506001600160a01b038135169060200135610691565b61032461069e565b6103c5600480360360e081101561038a57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356106b6565b005b610201600480360360408110156103dd57600080fd5b506001600160a01b03813581169160200135166107d7565b6103c5600480360361012081101561040c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356107f4565b6101e56004803603604081101561046a57600080fd5b506001600160a01b038135169060200135610a04565b610201610a24565b6040518060400160405280600a815260200169466c6173687374616b6560b01b81525081565b60006104bb338484610b2e565b5060015b92915050565b60005481565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610527576105028184610b90565b6001600160a01b03861660009081526002602090815260408083203384529091529020555b610532858585610bdd565b506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b4690565b6000337315eb0c763581329c921c8398556ecff85cc4827514806105a157503373f2319b6d2ab252d8d80d8cec34daf0079222a624145b6105f2576040805162461bcd60e51b815260206004820152601760248201527f466c617368546f6b656e3a3a204e4f545f4d494e544552000000000000000000604482015290519081900360640190fd5b6104bb8383610ce7565b60006106083383610d71565b506001919050565b60016020526000908152604090205481565b60036020526000908152604090205481565b6040518060400160405280600581526020016408c9882a6960db1b81525081565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b7315eb0c763581329c921c8398556ecff85cc4827581565b60006104bb338484610bdd565b73f2319b6d2ab252d8d80d8cec34daf0079222a62481565b42841015610707576040805162461bcd60e51b8152602060048201526019602482015278119b185cda151bdad95b8e8e881055551217d1561412549151603a1b604482015290519081900360640190fd5b6001600160a01b0380881660008181526003602081815260408084205481517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981850152808301879052968d166060880152608087018c905260a0870181905260c08088018c90528251808903909101815260e09097019091528551958201959095209390925290529061079c906001610ae2565b6001600160a01b0389166000908152600360205260409020556107c28882868686610e03565b6107cd888888610b2e565b5050505050505050565b600260209081526000928352604080842090915290825290205481565b854211610848576040805162461bcd60e51b815260206004820152601f60248201527f466c617368546f6b656e3a3a20415554485f4e4f545f5945545f56414c494400604482015290519081900360640190fd5b844210610898576040805162461bcd60e51b8152602060048201526019602482015278119b185cda151bdad95b8e8e881055551217d1561412549151603a1b604482015290519081900360640190fd5b6001600160a01b038916600090815260046020908152604080832087845290915290205460ff1615610911576040805162461bcd60e51b815260206004820152601e60248201527f466c617368546f6b656e3a3a20415554485f414c52454144595f555345440000604482015290519081900360640190fd5b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a22676020808301919091526001600160a01b03808d16838501528b166060830152608082018a905260a0820189905260c0820188905260e08083018890528351808403909101815261010090920190925280519101206109978a82868686610e03565b6001600160a01b038a166000818152600460209081526040808320898452909152808220805460ff19166001179055518792917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a36109f88a8a8a610bdd565b50505050505050505050565b600460209081526000928352604080842090915290825290205460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f345b72c36b14f1cee01efb8ac4b299dc7b8d873e28b4796034548a3d371a4d2f7fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5610a91610566565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b031681526020019550505050505060405160208183030381529060405280519060200120905090565b808201828110156104bf576040805162461bcd60e51b81526020600482015260116024820152704d4154483a4144445f4f564552464c4f5760781b604482015290519081900360640190fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156104bf576040805162461bcd60e51b81526020600482015260126024820152714d4154483a5355425f554e444552464c4f5760701b604482015290519081900360640190fd5b6001600160a01b0382163014801590610bfe57506001600160a01b03821615155b610c395760405162461bcd60e51b8152600401808060200182810382526026815260200180610f376026913960400191505060405180910390fd5b6001600160a01b038316600090815260016020526040902054610c5c9082610b90565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610c8b9082610ae2565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600054610cf49082610ae2565b60009081556001600160a01b038316815260016020526040902054610d199082610ae2565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216600090815260016020526040902054610d949082610b90565b6001600160a01b03831660009081526001602052604081209190915554610dbb9082610b90565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6000610e0d610a24565b85604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610ea6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610edc5750866001600160a01b0316816001600160a01b0316145b610f2d576040805162461bcd60e51b815260206004820152601e60248201527f466c617368546f6b656e3a3a20494e56414c49445f5349474e41545552450000604482015290519081900360640190fd5b5050505050505056fe466c617368546f6b656e3a3a2052454345495645525f49535f544f4b454e5f4f525f5a45524fa2646970667358221220f14349afdcfe5cd69f9a2bca6a00f48e2476ec348bc7f4ab487e027223cec45264736f6c63430007040033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c80637ecebe00116100b8578063c2801bbf1161007c578063c2801bbf1461036c578063d505accf14610374578063dd62ed3e146103c7578063e3ee160e146103f5578063e94a010214610454578063ed24911d1461048057610137565b80637ecebe00146102e657806395d89b411461030c578063a0cc6a6814610314578063a7f0e9031461031c578063a9059cbb1461034057610137565b8063313ce567116100ff578063313ce567146102515780633408e4701461026f57806340c10f191461027757806342966c68146102a357806370a08231146102c057610137565b806306fdde031461013c578063095ea7b3146101b957806318160ddd146101f957806323b872dd1461021357806330adf81f14610249575b600080fd5b610144610488565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e5600480360360408110156101cf57600080fd5b506001600160a01b0381351690602001356104ae565b604080519115158252519081900360200190f35b6102016104c5565b60408051918252519081900360200190f35b6101e56004803603606081101561022957600080fd5b506001600160a01b038135811691602081013590911690604001356104cb565b61020161053d565b610259610561565b6040805160ff9092168252519081900360200190f35b610201610566565b6101e56004803603604081101561028d57600080fd5b506001600160a01b03813516906020013561056a565b6101e5600480360360208110156102b957600080fd5b50356105fc565b610201600480360360208110156102d657600080fd5b50356001600160a01b0316610610565b610201600480360360208110156102fc57600080fd5b50356001600160a01b0316610622565b610144610634565b610201610655565b610324610679565b604080516001600160a01b039092168252519081900360200190f35b6101e56004803603604081101561035657600080fd5b506001600160a01b038135169060200135610691565b61032461069e565b6103c5600480360360e081101561038a57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356106b6565b005b610201600480360360408110156103dd57600080fd5b506001600160a01b03813581169160200135166107d7565b6103c5600480360361012081101561040c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356107f4565b6101e56004803603604081101561046a57600080fd5b506001600160a01b038135169060200135610a04565b610201610a24565b6040518060400160405280600a815260200169466c6173687374616b6560b01b81525081565b60006104bb338484610b2e565b5060015b92915050565b60005481565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610527576105028184610b90565b6001600160a01b03861660009081526002602090815260408083203384529091529020555b610532858585610bdd565b506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b4690565b6000337315eb0c763581329c921c8398556ecff85cc4827514806105a157503373f2319b6d2ab252d8d80d8cec34daf0079222a624145b6105f2576040805162461bcd60e51b815260206004820152601760248201527f466c617368546f6b656e3a3a204e4f545f4d494e544552000000000000000000604482015290519081900360640190fd5b6104bb8383610ce7565b60006106083383610d71565b506001919050565b60016020526000908152604090205481565b60036020526000908152604090205481565b6040518060400160405280600581526020016408c9882a6960db1b81525081565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b7315eb0c763581329c921c8398556ecff85cc4827581565b60006104bb338484610bdd565b73f2319b6d2ab252d8d80d8cec34daf0079222a62481565b42841015610707576040805162461bcd60e51b8152602060048201526019602482015278119b185cda151bdad95b8e8e881055551217d1561412549151603a1b604482015290519081900360640190fd5b6001600160a01b0380881660008181526003602081815260408084205481517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981850152808301879052968d166060880152608087018c905260a0870181905260c08088018c90528251808903909101815260e09097019091528551958201959095209390925290529061079c906001610ae2565b6001600160a01b0389166000908152600360205260409020556107c28882868686610e03565b6107cd888888610b2e565b5050505050505050565b600260209081526000928352604080842090915290825290205481565b854211610848576040805162461bcd60e51b815260206004820152601f60248201527f466c617368546f6b656e3a3a20415554485f4e4f545f5945545f56414c494400604482015290519081900360640190fd5b844210610898576040805162461bcd60e51b8152602060048201526019602482015278119b185cda151bdad95b8e8e881055551217d1561412549151603a1b604482015290519081900360640190fd5b6001600160a01b038916600090815260046020908152604080832087845290915290205460ff1615610911576040805162461bcd60e51b815260206004820152601e60248201527f466c617368546f6b656e3a3a20415554485f414c52454144595f555345440000604482015290519081900360640190fd5b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a22676020808301919091526001600160a01b03808d16838501528b166060830152608082018a905260a0820189905260c0820188905260e08083018890528351808403909101815261010090920190925280519101206109978a82868686610e03565b6001600160a01b038a166000818152600460209081526040808320898452909152808220805460ff19166001179055518792917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a36109f88a8a8a610bdd565b50505050505050505050565b600460209081526000928352604080842090915290825290205460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f345b72c36b14f1cee01efb8ac4b299dc7b8d873e28b4796034548a3d371a4d2f7fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5610a91610566565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b031681526020019550505050505060405160208183030381529060405280519060200120905090565b808201828110156104bf576040805162461bcd60e51b81526020600482015260116024820152704d4154483a4144445f4f564552464c4f5760781b604482015290519081900360640190fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156104bf576040805162461bcd60e51b81526020600482015260126024820152714d4154483a5355425f554e444552464c4f5760701b604482015290519081900360640190fd5b6001600160a01b0382163014801590610bfe57506001600160a01b03821615155b610c395760405162461bcd60e51b8152600401808060200182810382526026815260200180610f376026913960400191505060405180910390fd5b6001600160a01b038316600090815260016020526040902054610c5c9082610b90565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610c8b9082610ae2565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600054610cf49082610ae2565b60009081556001600160a01b038316815260016020526040902054610d199082610ae2565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216600090815260016020526040902054610d949082610b90565b6001600160a01b03831660009081526001602052604081209190915554610dbb9082610b90565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6000610e0d610a24565b85604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610ea6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610edc5750866001600160a01b0316816001600160a01b0316145b610f2d576040805162461bcd60e51b815260206004820152601e60248201527f466c617368546f6b656e3a3a20494e56414c49445f5349474e41545552450000604482015290519081900360640190fd5b5050505050505056fe466c617368546f6b656e3a3a2052454345495645525f49535f544f4b454e5f4f525f5a45524fa2646970667358221220f14349afdcfe5cd69f9a2bca6a00f48e2476ec348bc7f4ab487e027223cec45264736f6c63430007040033

Deployed Bytecode Sourcemap

1192:7239:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2516:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6223:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6223:159:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2834:35;;;:::i;:::-;;;;;;;;;;;;;;;;6549:469;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6549:469:0;;;;;;;;;;;;;;;;;:::i;2050:108::-;;;:::i;2611:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5570:190;;;:::i;5956:133::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5956:133:0;;;;;;;;:::i;6097:118::-;;;;;;;;;;;;;;;;-1:-1:-1;6097:118:0;;:::i;2878:53::-;;;;;;;;;;;;;;;;-1:-1:-1;2878:53:0;-1:-1:-1;;;;;2878:53:0;;:::i;3053:41::-;;;;;;;;;;;;;;;;-1:-1:-1;3053:41:0;-1:-1:-1;;;;;3053:41:0;;:::i;2565:39::-;;;:::i;2378:129::-;;;:::i;2655:83::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2655:83:0;;;;;;;;;;;;;;6390:151;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6390:151:0;;;;;;;;:::i;2745:80::-;;;:::i;7026:544::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7026:544:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2938:73;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2938:73:0;;;;;;;;;;:::i;7578:850::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7578:850:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3101:70::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3101:70:0;;;;;;;;:::i;5768:180::-;;;:::i;2516:42::-;;;;;;;;;;;;;;-1:-1:-1;;;2516:42:0;;;;:::o;6223:159::-;6299:4;6316:36;6325:10;6337:7;6346:5;6316:8;:36::i;:::-;-1:-1:-1;6370:4:0;6223:159;;;;;:::o;2834:35::-;;;;:::o;6549:469::-;-1:-1:-1;;;;;6714:15:0;;6673:4;6714:15;;;:9;:15;;;;;;;;6730:10;6714:27;;;;;;;;-1:-1:-1;;6756:28:0;;6752:200;;6916:24;:13;6934:5;6916:17;:24::i;:::-;-1:-1:-1;;;;;6886:15:0;;;;;;:9;:15;;;;;;;;6902:10;6886:27;;;;;;;:54;6752:200;6962:26;6972:4;6978:2;6982:5;6962:9;:26::i;:::-;-1:-1:-1;7006:4:0;;6549:469;-1:-1:-1;;;;6549:469:0:o;2050:108::-;2092:66;2050:108;:::o;2611:35::-;2644:2;2611:35;:::o;5570:190::-;5733:9;;5707:46::o;5956:133::-;6026:4;3464:10;2696:42;3464:28;;:57;;-1:-1:-1;3496:10:0;2783:42;3496:25;3464:57;3456:93;;;;;-1:-1:-1;;;3456:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6043:16:::1;6049:2;6053:5;6043;:16::i;6097:118::-:0;6144:4;6161:24;6167:10;6179:5;6161;:24::i;:::-;-1:-1:-1;6203:4:0;6097:118;;;:::o;2878:53::-;;;;;;;;;;;;;:::o;3053:41::-;;;;;;;;;;;;;:::o;2565:39::-;;;;;;;;;;;;;;-1:-1:-1;;;2565:39:0;;;;:::o;2378:129::-;2441:66;2378:129;:::o;2655:83::-;2696:42;2655:83;:::o;6390:151::-;6462:4;6479:32;6489:10;6501:2;6505:5;6479:9;:32::i;2745:80::-;2783:42;2745:80;:::o;7026:544::-;7248:15;7236:8;:27;;7228:65;;;;;-1:-1:-1;;;7228:65:0;;;;;;;;;;;;-1:-1:-1;;;7228:65:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7388:13:0;;;7306:18;7388:13;;;:6;:13;;;;;;;;;7337:75;;2092:66;7337:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7327:86;;;;;;;;;7440:13;;;;;;7327:86;7440:20;;7458:1;7440:17;:20::i;:::-;-1:-1:-1;;;;;7424:13:0;;;;;;:6;:13;;;;;:36;7471:47;7431:5;7498:10;7510:1;7513;7516;7471:19;:47::i;:::-;7531:31;7540:5;7547:7;7556:5;7531:8;:31::i;:::-;7026:544;;;;;;;;:::o;2938:73::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7578:850::-;7875:10;7857:15;:28;7849:72;;;;;-1:-1:-1;;;7849:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7958:11;7940:15;:29;7932:67;;;;;-1:-1:-1;;;7932:67:0;;;;;;;;;;;;-1:-1:-1;;;7932:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8019:24:0;;;;;;:18;:24;;;;;;;;:31;;;;;;;;;;;8018:32;8010:75;;;;;-1:-1:-1;;;8010:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8129:97;;;2441:66;8129:97;;;;;;;;-1:-1:-1;;;;;8129:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8119:108;;;;;8238:46;8178:4;8119:108;8276:1;8279;8282;8238:19;:46::i;:::-;-1:-1:-1;;;;;8297:24:0;;;;;;:18;:24;;;;;;;;:31;;;;;;;;;:38;;-1:-1:-1;;8297:38:0;8331:4;8297:38;;;8351:30;8322:5;;8297:24;8351:30;;;8394:26;8404:4;8410:2;8414:5;8394:9;:26::i;:::-;7578:850;;;;;;;;;;:::o;3101:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5768:180::-;5819:7;1466:66;1642;1820;5911:12;:10;:12::i;:::-;5933:4;5856:83;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5856:83:0;;;;;;;;;;;;;;;;;;;;;;;;5846:94;;;;;;5839:101;;5768:180;:::o;83:134::-;176:5;;;171:16;;;;163:46;;;;;-1:-1:-1;;;163:46:0;;;;;;;;;;;;-1:-1:-1;;;163:46:0;;;;;;;;;;;;;;4909:206;-1:-1:-1;;;;;5027:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;5076:31;;;;;;;;;;;;;;;;;4909:206;;;:::o;225:135::-;318:5;;;313:16;;;;305:47;;;;;-1:-1:-1;;;305:47:0;;;;;;;;;;;;-1:-1:-1;;;305:47:0;;;;;;;;;;;;;;5123:439;-1:-1:-1;;;;;5244:19:0;;5258:4;5244:19;;;;:39;;-1:-1:-1;;;;;;5267:16:0;;;;5244:39;5236:90;;;;-1:-1:-1;;;5236:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5436:15:0;;;;;;:9;:15;;;;;;:26;;5456:5;5436:19;:26::i;:::-;-1:-1:-1;;;;;5418:15:0;;;;;;;:9;:15;;;;;;:44;;;;5489:13;;;;;;;:24;;5507:5;5489:17;:24::i;:::-;-1:-1:-1;;;;;5473:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;5529:25;;;;;;;5473:13;;5529:25;;;;;;;;;;;;;5123:439;;;:::o;4398:204::-;4474:11;;:22;;4490:5;4474:15;:22::i;:::-;4460:11;:36;;;-1:-1:-1;;;;;4523:13:0;;;;:9;:13;;;;;;:24;;4541:5;4523:17;:24::i;:::-;-1:-1:-1;;;;;4507:13:0;;;;;;:9;:13;;;;;;;;:40;;;;4563:31;;;;;;;4507:13;;;;4563:31;;;;;;;;;;4398:204;;:::o;4610:291::-;-1:-1:-1;;;;;4771:15:0;;;;;;:9;:15;;;;;;:26;;4791:5;4771:19;:26::i;:::-;-1:-1:-1;;;;;4753:15:0;;;;;;:9;:15;;;;;:44;;;;4822:11;:22;;4838:5;4822:15;:22::i;:::-;4808:11;:36;;;4860:33;;;;;;;;-1:-1:-1;;;;;4860:33:0;;;;;;;;;;;;;4610:291;;:::o;3825:565::-;3998:14;4054:20;:18;:20::i;:::-;4076:10;4025:62;;;;;;-1:-1:-1;;;4025:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4015:73;;;;;;3998:90;;4099:24;4126:26;4136:6;4144:1;4147;4150;4126:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4126:26:0;;-1:-1:-1;;4126:26:0;;;-1:-1:-1;;;;;;;4287:30:0;;;;;;:60;;;4341:6;-1:-1:-1;;;;;4321:26:0;:16;-1:-1:-1;;;;;4321:26:0;;4287:60;4279:103;;;;;-1:-1:-1;;;4279:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3825:565;;;;;;;:::o

Swarm Source

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