ETH Price: $3,250.64 (+0.43%)
Gas: 3.52 Gwei

Contract

0x20398aD62bb2D930646d45a6D4292baa0b860C1f
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer215267722025-01-01 2:56:479 days ago1735700207IN
Flashstake: Old FLASH Token 2
0 ETH0.000109983.72577633
Transfer215237732024-12-31 16:54:3510 days ago1735664075IN
Flashstake: Old FLASH Token 2
0 ETH0.0005972512.75206429
Approve213578452024-12-08 12:43:1133 days ago1733661791IN
Flashstake: Old FLASH Token 2
0 ETH0.000229879.52806278
Transfer212957852024-11-29 20:38:5942 days ago1732912739IN
Flashstake: Old FLASH Token 2
0 ETH0.0003628912.30335674
Approve211696902024-11-12 6:03:3559 days ago1731391415IN
Flashstake: Old FLASH Token 2
0 ETH0.001265627.27013129
Approve211632992024-11-11 8:38:3560 days ago1731314315IN
Flashstake: Old FLASH Token 2
0 ETH0.0005282911.44825671
Approve210893902024-11-01 1:04:2371 days ago1730423063IN
Flashstake: Old FLASH Token 2
0 ETH0.000254585.4856542
Transfer210540722024-10-27 2:47:3575 days ago1729997255IN
Flashstake: Old FLASH Token 2
0 ETH0.000166473.55431804
Approve209317172024-10-10 0:47:1193 days ago1728521231IN
Flashstake: Old FLASH Token 2
0 ETH0.000191357.93134567
Approve207437032024-09-13 19:12:47119 days ago1726254767IN
Flashstake: Old FLASH Token 2
0 ETH0.000066592.76027513
Approve206674942024-09-03 3:54:23129 days ago1725335663IN
Flashstake: Old FLASH Token 2
0 ETH0.000031340.67635102
Transfer206674702024-09-03 3:49:35129 days ago1725335375IN
Flashstake: Old FLASH Token 2
0 ETH0.000039920.85219957
Approve206044082024-08-25 8:27:35138 days ago1724574455IN
Flashstake: Old FLASH Token 2
0 ETH0.000019180.79522413
Approve205906632024-08-23 10:20:11140 days ago1724408411IN
Flashstake: Old FLASH Token 2
0 ETH0.000091971.981741
Transfer205657732024-08-19 22:51:35144 days ago1724107895IN
Flashstake: Old FLASH Token 2
0 ETH0.000057171.22148146
Approve204559402024-08-04 14:58:35159 days ago1722783515IN
Flashstake: Old FLASH Token 2
0 ETH0.000295566.36854171
Approve204458292024-08-03 5:08:59160 days ago1722661739IN
Flashstake: Old FLASH Token 2
0 ETH0.000069521.5
Transfer203943832024-07-27 0:44:47168 days ago1722041087IN
Flashstake: Old FLASH Token 2
0 ETH0.00004191.40931378
Transfer203943822024-07-27 0:44:35168 days ago1722041075IN
Flashstake: Old FLASH Token 2
0 ETH0.000041631.40001195
Transfer203943772024-07-27 0:43:35168 days ago1722041015IN
Flashstake: Old FLASH Token 2
0 ETH0.000045211.52103844
Transfer203943622024-07-27 0:40:23168 days ago1722040823IN
Flashstake: Old FLASH Token 2
0 ETH0.000065771.40511163
Approve200053322024-06-02 16:29:11222 days ago1717345751IN
Flashstake: Old FLASH Token 2
0 ETH0.000348414.44085312
Approve199746302024-05-29 9:29:11226 days ago1716974951IN
Flashstake: Old FLASH Token 2
0 ETH0.0004929710.6221233
Approve199737352024-05-29 6:29:23226 days ago1716964163IN
Flashstake: Old FLASH Token 2
0 ETH0.00045679.84057937
Approve196660242024-04-16 5:40:59269 days ago1713246059IN
Flashstake: Old FLASH Token 2
0 ETH0.0004714910.22012066
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.