Contract 0xb4467e8d621105312a914f1d42f10770c0ffe3c8

 
Txn Hash
Block
From
To
Value
0xb0908d506bc09fb69b2389ba03449e3751203ceeaa5e211c89eaacd75dbfd505(pending)2021-02-28 1:25:306 days 16 hrs ago0x873ce3900750d30b075d0c22e01d5a013311e933 IN 0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether(Pending)(Pending)
0x90f15517efab686c834bbf9f7188b41b63ae838059e2959c8c7300e66dbdcc79119861662021-03-06 17:09:4136 mins ago0x074902c9e78cccb1f184debdd4df41f2dbf82e4f IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00584892132
0x4aebfb71a58d647f55f59ef006cce91579c4231ee54dac81a9a9551bc8788ba9119831492021-03-06 6:17:1611 hrs 28 mins ago0xa5fef85e50a1ef1e012185e903352855fb3e1678 IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00292968981
0x4462e1e56e9429ddd297a8e6aab033593f70cdec8824b58fb25c2ec9db41bc03119824172021-03-06 3:29:0414 hrs 16 mins ago0xdb9433cbd2a7b6769ff6e0da531a5466397234f7 IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.0038106686
0x2cfceeb026cc3271cd9779e2ccac4645810b4e083e872c8a7ee1c1305a16e847119801572021-03-05 19:10:2822 hrs 35 mins ago0x9855fe4271d3fd5d675f32fbca4dd2caa66fc04b IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00593754134
0x2f8a90b13c71512fd5e65fbe68728764c6157d19a2e17f4ef91f8b8981d8d4bd119794112021-03-05 16:26:031 day 1 hr ago0x95d19d1e3629a3640c12b84e9bc955167746a2d4 IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.004962720064112.000001459
0xe6c4bdd0e2951c97bb432c33ae51af32af0f120a0dc8882235921cb33a29d46a119787562021-03-05 14:08:481 day 3 hrs ago0xd22ded954c972a9da94c356486604737c151e866 IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.009145584206.4
0x538cb07eb8a97fd3b649d3c1faa8309d983af2fb440e162f37347bac17319432119763732021-03-05 5:20:591 day 12 hrs ago0xe46716da9e625323686ab9d0b7c48d83256d1e4a IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00431650898
0xdbc0084fc43ca508a880ffe938060f7a52128f822c41a262873ecf3a91f66252119762432021-03-05 4:55:431 day 12 hrs ago0x4bb593ba3a0d24424d3ab12d8d3d6cb4de82de7f IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.0037663585
0x5ea157692fc379ee11f22eb733f2fa0f283e0ae1f3995ab2c6f8cb62a80b2047119743782021-03-04 22:02:211 day 19 hrs ago0xa422de7750105f15eee59108a2f3cec83eeb10f6 IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.0035891181
0x3884ba3fd980ae762fe1157c16239f9e24ba0f6cf2bbe67323b0b17fbe544c1e119741722021-03-04 21:22:141 day 20 hrs ago0xa6a4eb581263e6d753850f6a001855f04ebd03b3 IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00425376006496.000001459
0x23e9e26b1c09b849c47db1cad94d13d38bd05941ff3362cfd64e4bdac16649d0119733732021-03-04 18:20:031 day 23 hrs ago0x877cb804b205b6dd1988a39a622a202a1aa1558e IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00611478138
0xa96d18c574698ffbf370e063c1392f43b921f00d3eda3e5c8604610318a68bbb119720702021-03-04 13:27:352 days 4 hrs ago0xa1ac2701e90c6033c485e24ae595754e7ff35a6c IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00365581883
0x11ed2ce95fa36c287252dc9b3cdfc7363ede4f4b66c40c8504fab0c7e1b436c5119719322021-03-04 13:01:272 days 4 hrs ago0x096a9850e00c1d6fd767514735225935e173120e IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.0032789474
0xaea9b09175e7a5c060a7c6c54609427c8ff336b7fbd859887e30d9160e9f70c6119711442021-03-04 9:57:242 days 7 hrs ago0x582dc1ff50f9d25ec623626c9a22aba1c1265001 IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.0043866999
0xc1344ddd1bff5a5145447002a034feb5ef548eb0813f9df9c025ea788876ade5119707492021-03-04 8:33:222 days 9 hrs ago0x4581e1fa08f7d97f850aadbb281371d4cf652b2a IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.0037663585
0x61644c3bd7a219d6b9e94e295351ffe458935c0ff6b9c215b6d682f962b3d795119701862021-03-04 6:35:332 days 11 hrs ago0x5890dc2b382ffb6199385d8ceccf7250c0ef31cd IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.0038106686
0x9de110646fa3f405a8b8390a3205a94abdb32b8b408de2a7c87703140abca314119700682021-03-04 6:04:382 days 11 hrs ago0x292e1a02896abf3514e7ecc1fce91458452a0b92 IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00380179885.8
0x3f099d41930159c4b39d48ed029a09519bd8b26a68e998885486e97b79323534119684372021-03-04 0:10:462 days 17 hrs ago0xa2bff706dd94c8e8284314aaf243d8d99cf723da IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00545013123
0x8cd26d7c84daf568b2bdbbce415c2b1c6f118587dae3ef8c092d0cc4e16c2434119680612021-03-03 22:41:442 days 19 hrs ago0x45d6e2ad99cb0777b021babdd639405d782b966e IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.004532913102.3
0x4ea5bae6a8b31b8c8b266c9a286ca7d2b0a13bb90d3de018d404dd6b36978d07119674892021-03-03 20:35:122 days 21 hrs ago0x1069dbb0855bc6e5aa6ae5594e1fa4cd504224af IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.007664004174
0x899640446192a9326069b4d4cd326d46cadd5939ebf5df9c4556bf6590f1c596119669972021-03-03 18:39:222 days 23 hrs ago0x05167b5a84e016c24cf0a6f671feac6edded6a5c IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00501338698
0x7c6406ef6029018a81e48908f2836c30f877a9629424f30a813311f4c9d68c14119667912021-03-03 17:56:382 days 23 hrs ago0xc409134827440024347e27b2826dfd3d42a2967b IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00624771141
0x6e596f59b8f96db4ea1118f3a627008070d28b53eef049da9d13194d8639d092119660942021-03-03 15:22:113 days 2 hrs ago0x27f8622e0502d450797f72011ff92267fd2abbcd IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.00584892132
0x0eb7222bdf5bd49cf1b1738fdc5b06737b2694895b24451d14001a41ec7b25fe119656442021-03-03 13:46:093 days 3 hrs agoBilaxy 2 IN  0xb4467e8d621105312a914f1d42f10770c0ffe3c80 Ether0.008336635163
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FlashToken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-12-22
*/

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

// A library for performing overflow-safe math, courtesy of DappHub: https://github.com/dapphub/ds-math/blob/d0ef6d6a5f/src/math.sol
// Modified to include only the essentials
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);
}

interface IFlashMinter {
    function executeOnFlashMint(bytes calldata data) external;
}

// 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()`)
//   - flashMint() - allows to flashMint an arbitrary amount of FLASH, with the
//     condition that it is burned before the end of the transaction.
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("1")
    bytes32 private constant VERSION_HASH = 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6;

    // 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 = "Flash Token";
    string public constant symbol = "FLASH";
    uint8 public constant decimals = 18;

    uint256 public override totalSupply;
    uint256 public flashSupply;

    mapping(address => bool) public minters;

    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(minters[msg.sender] == true, "FlashToken:: NOT_MINTER");
        _;
    }

    constructor(address flashProtocol, address flashClaim) public {
        minters[flashProtocol] = true;
        minters[flashClaim] = true;
    }

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

    function flashMint(uint256 value, bytes calldata data) external {
        flashSupply = flashSupply.add(value);
        require(flashSupply <= type(uint112).max, "FlashToken:: SUPPLY_LIMIT_EXCEED");
        balanceOf[msg.sender] = balanceOf[msg.sender].add(value);
        emit Transfer(address(0), msg.sender, value);

        IFlashMinter(msg.sender).executeOnFlashMint(data);

        require(balanceOf[msg.sender] >= value, "FlashToken:: TRANSFER_EXCEED_BALANCE");
        balanceOf[msg.sender] = balanceOf[msg.sender].sub(value);
        flashSupply = flashSupply.sub(value);
        emit Transfer(msg.sender, address(0), value);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"flashProtocol","type":"address"},{"internalType":"address","name":"flashClaim","type":"address"}],"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":"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":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"flashMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flashSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

608060405234801561001057600080fd5b506040516112753803806112758339818101604052604081101561003357600080fd5b5080516020918201516001600160a01b039182166000908152600290935260408084208054600160ff199182168117909255939092168452832080549092161790556111f090819061008590396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063d505accf1161007c578063d505accf146103d4578063dd62ed3e14610425578063e3ee160e14610453578063e94a0102146104b2578063ed24911d146104de578063f46eccc4146104e657610142565b806370a082311461034c5780637ecebe001461037257806395d89b4114610398578063a0cc6a68146103a0578063a9059cbb146103a857610142565b8063313ce5671161010a578063313ce5671461025c5780633408e4701461027a57806340c10f191461028257806342966c68146102ae578063522c8067146102cb578063582daafe1461034457610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e57806330adf81f14610254575b600080fd5b61014f61050c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b038135169060200135610533565b604080519115158252519081900360200190f35b61020c61054a565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b03813581169160208101359091169060400135610550565b61020c6105c2565b6102646105e6565b6040805160ff9092168252519081900360200190f35b61020c6105eb565b6101f06004803603604081101561029857600080fd5b506001600160a01b0381351690602001356105ef565b6101f0600480360360208110156102c457600080fd5b5035610662565b610342600480360360408110156102e157600080fd5b8135919081019060408101602082013564010000000081111561030357600080fd5b82018360208201111561031557600080fd5b8035906020019184600183028401116401000000008311171561033757600080fd5b509092509050610676565b005b61020c610875565b61020c6004803603602081101561036257600080fd5b50356001600160a01b031661087b565b61020c6004803603602081101561038857600080fd5b50356001600160a01b031661088d565b61014f61089f565b61020c6108c0565b6101f0600480360360408110156103be57600080fd5b506001600160a01b0381351690602001356108e4565b610342600480360360e08110156103ea57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356108f1565b61020c6004803603604081101561043b57600080fd5b506001600160a01b0381358116916020013516610a12565b610342600480360361012081101561046a57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135610a2f565b6101f0600480360360408110156104c857600080fd5b506001600160a01b038135169060200135610c3f565b61020c610c5f565b6101f0600480360360208110156104fc57600080fd5b50356001600160a01b0316610d1d565b6040518060400160405280600b81526020016a233630b9b4102a37b5b2b760a91b81525081565b6000610540338484610d32565b5060015b92915050565b60005481565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001981146105ac576105878184610d94565b6001600160a01b03861660009081526004602090815260408083203384529091529020555b6105b7858585610de1565b506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b4690565b3360009081526002602052604081205460ff161515600114610658576040805162461bcd60e51b815260206004820152601760248201527f466c617368546f6b656e3a3a204e4f545f4d494e544552000000000000000000604482015290519081900360640190fd5b6105408383610ed9565b600061066e3383610f51565b506001919050565b6001546106839084610fd1565b60018190556dffffffffffffffffffffffffffff10156106ea576040805162461bcd60e51b815260206004820181905260248201527f466c617368546f6b656e3a3a20535550504c595f4c494d49545f455843454544604482015290519081900360640190fd5b336000908152600360205260409020546107049084610fd1565b33600081815260036020908152604080832094909455835187815293519293919260008051602061119b8339815191529281900390910190a36040516319f5fdd760e01b81526020600482019081526024820183905233916319f5fdd79185918591908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505033600090815260036020526040902054851115915061081090505760405162461bcd60e51b81526004018080602001828103825260248152602001806111776024913960400191505060405180910390fd5b3360009081526003602052604090205461082a9084610d94565b336000908152600360205260409020556001546108479084610d94565b600155604080518481529051600091339160008051602061119b8339815191529181900360200190a3505050565b60015481565b60036020526000908152604090205481565b60056020526000908152604090205481565b6040518060400160405280600581526020016408c9882a6960db1b81525081565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b6000610540338484610de1565b42841015610942576040805162461bcd60e51b8152602060048201526019602482015278119b185cda151bdad95b8e8e881055551217d1561412549151603a1b604482015290519081900360640190fd5b6001600160a01b0380881660008181526005602081815260408084205481517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981850152808301879052968d166060880152608087018c905260a0870181905260c08088018c90528251808903909101815260e0909701909152855195820195909520939092529052906109d7906001610fd1565b6001600160a01b0389166000908152600560205260409020556109fd888286868661101d565b610a08888888610d32565b5050505050505050565b600460209081526000928352604080842090915290825290205481565b854211610a83576040805162461bcd60e51b815260206004820152601f60248201527f466c617368546f6b656e3a3a20415554485f4e4f545f5945545f56414c494400604482015290519081900360640190fd5b844210610ad3576040805162461bcd60e51b8152602060048201526019602482015278119b185cda151bdad95b8e8e881055551217d1561412549151603a1b604482015290519081900360640190fd5b6001600160a01b038916600090815260066020908152604080832087845290915290205460ff1615610b4c576040805162461bcd60e51b815260206004820152601e60248201527f466c617368546f6b656e3a3a20415554485f414c52454144595f555345440000604482015290519081900360640190fd5b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a22676020808301919091526001600160a01b03808d16838501528b166060830152608082018a905260a0820189905260c0820188905260e0808301889052835180840390910181526101009092019092528051910120610bd28a8286868661101d565b6001600160a01b038a166000818152600660209081526040808320898452909152808220805460ff19166001179055518792917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a3610c338a8a8a610de1565b50505050505050505050565b600660209081526000928352604080842090915290825290205460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f345b72c36b14f1cee01efb8ac4b299dc7b8d873e28b4796034548a3d371a4d2f7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6610ccc6105eb565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b031681526020019550505050505060405160208183030381529060405280519060200120905090565b60026020526000908152604090205460ff1681565b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610544576040805162461bcd60e51b81526020600482015260126024820152714d4154483a5355425f554e444552464c4f5760701b604482015290519081900360640190fd5b6001600160a01b0382163014801590610e0257506001600160a01b03821615155b610e3d5760405162461bcd60e51b81526004018080602001828103825260268152602001806111516026913960400191505060405180910390fd5b6001600160a01b038316600090815260036020526040902054610e609082610d94565b6001600160a01b038085166000908152600360205260408082209390935590841681522054610e8f9082610fd1565b6001600160a01b03808416600081815260036020908152604091829020949094558051858152905191939287169260008051602061119b83398151915292918290030190a3505050565b600054610ee69082610fd1565b60009081556001600160a01b038316815260036020526040902054610f0b9082610fd1565b6001600160a01b038316600081815260036020908152604080832094909455835185815293519293919260008051602061119b8339815191529281900390910190a35050565b6001600160a01b038216600090815260036020526040902054610f749082610d94565b6001600160a01b03831660009081526003602052604081209190915554610f9b9082610d94565b60009081556040805183815290516001600160a01b0385169160008051602061119b833981519152919081900360200190a35050565b80820182811015610544576040805162461bcd60e51b81526020600482015260116024820152704d4154483a4144445f4f564552464c4f5760781b604482015290519081900360640190fd5b6000611027610c5f565b85604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156110c0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906110f65750866001600160a01b0316816001600160a01b0316145b611147576040805162461bcd60e51b815260206004820152601e60248201527f466c617368546f6b656e3a3a20494e56414c49445f5349474e41545552450000604482015290519081900360640190fd5b5050505050505056fe466c617368546f6b656e3a3a2052454345495645525f49535f544f4b454e5f4f525f5a45524f466c617368546f6b656e3a3a205452414e534645525f4558434545445f42414c414e4345ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204d8a9375ce9500e4c7d00d52f89a8f91865ac5f1ab3ee7fde3bd555bd069f59e64736f6c634300060c0033000000000000000000000000ec02f813404656e2a2aed5baeed41d785324e8d00000000000000000000000004a15d47087433f44d931a0dcc4161ea6d98633a8

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

000000000000000000000000ec02f813404656e2a2aed5baeed41d785324e8d00000000000000000000000004a15d47087433f44d931a0dcc4161ea6d98633a8

-----Decoded View---------------
Arg [0] : flashProtocol (address): 0xec02f813404656e2a2aed5baeed41d785324e8d0
Arg [1] : flashClaim (address): 0x4a15d47087433f44d931a0dcc4161ea6d98633a8

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000ec02f813404656e2a2aed5baeed41d785324e8d0
Arg [1] : 0000000000000000000000004a15d47087433f44d931a0dcc4161ea6d98633a8


Deployed ByteCode Sourcemap

1620:7679:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2944:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6431:159;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6431:159:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3084:35;;;:::i;:::-;;;;;;;;;;;;;;;;6757:469;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6757:469:0;;;;;;;;;;;;;;;;;:::i;2478:108::-;;;:::i;3040:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5778:190;;;:::i;6164:133::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6164:133:0;;;;;;;;:::i;6305:118::-;;;;;;;;;;;;;;;;-1:-1:-1;6305:118:0;;:::i;8644:652::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8644:652:0;;-1:-1:-1;8644:652:0;-1:-1:-1;8644:652:0;:::i;:::-;;3126:26;;;:::i;3209:53::-;;;;;;;;;;;;;;;;-1:-1:-1;3209:53:0;-1:-1:-1;;;;;3209:53:0;;:::i;3384:41::-;;;;;;;;;;;;;;;;-1:-1:-1;3384:41:0;-1:-1:-1;;;;;3384:41:0;;:::i;2994:39::-;;;:::i;2806:129::-;;;:::i;6598:151::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6598:151:0;;;;;;;;:::i;7234:544::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7234:544:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3269:73::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3269:73:0;;;;;;;;;;:::i;7786:850::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7786:850:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3432:70::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3432:70:0;;;;;;;;:::i;5976:180::-;;;:::i;3161:39::-;;;;;;;;;;;;;;;;-1:-1:-1;3161:39:0;-1:-1:-1;;;;;3161:39:0;;:::i;2944:43::-;;;;;;;;;;;;;;-1:-1:-1;;;2944:43:0;;;;:::o;6431:159::-;6507:4;6524:36;6533:10;6545:7;6554:5;6524:8;:36::i;:::-;-1:-1:-1;6578:4:0;6431:159;;;;;:::o;3084:35::-;;;;:::o;6757:469::-;-1:-1:-1;;;;;6922:15:0;;6881:4;6922:15;;;:9;:15;;;;;;;;6938:10;6922:27;;;;;;;;-1:-1:-1;;6964:28:0;;6960:200;;7124:24;:13;7142:5;7124:17;:24::i;:::-;-1:-1:-1;;;;;7094:15:0;;;;;;:9;:15;;;;;;;;7110:10;7094:27;;;;;;;:54;6960:200;7170:26;7180:4;7186:2;7190:5;7170:9;:26::i;:::-;-1:-1:-1;7214:4:0;;6757:469;-1:-1:-1;;;;6757:469:0:o;2478:108::-;2520:66;2478:108;:::o;3040:35::-;3073:2;3040:35;:::o;5778:190::-;5941:9;;5915:46::o;6164:133::-;3803:10;6234:4;3795:19;;;:7;:19;;;;;;;;:27;;:19;:27;3787:63;;;;;-1:-1:-1;;;3787:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6251:16:::1;6257:2;6261:5;6251;:16::i;6305:118::-:0;6352:4;6369:24;6375:10;6387:5;6369;:24::i;:::-;-1:-1:-1;6411:4:0;6305:118;;;:::o;8644:652::-;8733:11;;:22;;8749:5;8733:15;:22::i;:::-;8719:11;:36;;;8789:17;-1:-1:-1;8774:32:0;8766:77;;;;;-1:-1:-1;;;8766:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8888:10;8878:21;;;;:9;:21;;;;;;:32;;8904:5;8878:25;:32::i;:::-;8864:10;8854:21;;;;:9;:21;;;;;;;;:56;;;;8926:39;;;;;;;8864:10;;8854:21;;-1:-1:-1;;;;;;;;;;;8926:39:0;;;;;;;;;8978:49;;-1:-1:-1;;;8978:49:0;;;;;;;;;;;;;;;8991:10;;8978:43;;9022:4;;;;8978:49;;;;;9022:4;;;;8978:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9058:10:0;9048:21;;;;:9;:21;;;;;;:30;-1:-1:-1;9048:30:0;;-1:-1:-1;9040:79:0;;-1:-1:-1;9040:79:0;;;-1:-1:-1;;;9040:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9164:10;9154:21;;;;:9;:21;;;;;;:32;;9180:5;9154:25;:32::i;:::-;9140:10;9130:21;;;;:9;:21;;;;;:56;9211:11;;:22;;9227:5;9211:15;:22::i;:::-;9197:11;:36;9249:39;;;;;;;;9278:1;;9258:10;;-1:-1:-1;;;;;;;;;;;9249:39:0;;;;;;;;8644:652;;;:::o;3126:26::-;;;;:::o;3209:53::-;;;;;;;;;;;;;:::o;3384:41::-;;;;;;;;;;;;;:::o;2994:39::-;;;;;;;;;;;;;;-1:-1:-1;;;2994:39:0;;;;:::o;2806:129::-;2869:66;2806:129;:::o;6598:151::-;6670:4;6687:32;6697:10;6709:2;6713:5;6687:9;:32::i;7234:544::-;7456:15;7444:8;:27;;7436:65;;;;;-1:-1:-1;;;7436:65:0;;;;;;;;;;;;-1:-1:-1;;;7436:65:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7596:13:0;;;7514:18;7596:13;;;:6;:13;;;;;;;;;7545:75;;2520:66;7545:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7535:86;;;;;;;;;7648:13;;;;;;7535:86;7648:20;;7666:1;7648:17;:20::i;:::-;-1:-1:-1;;;;;7632:13:0;;;;;;:6;:13;;;;;:36;7679:47;7639:5;7706:10;7718:1;7721;7724;7679:19;:47::i;:::-;7739:31;7748:5;7755:7;7764:5;7739:8;:31::i;:::-;7234:544;;;;;;;;:::o;3269:73::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;7786:850::-;8083:10;8065:15;:28;8057:72;;;;;-1:-1:-1;;;8057:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8166:11;8148:15;:29;8140:67;;;;;-1:-1:-1;;;8140:67:0;;;;;;;;;;;;-1:-1:-1;;;8140:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8227:24:0;;;;;;:18;:24;;;;;;;;:31;;;;;;;;;;;8226:32;8218:75;;;;;-1:-1:-1;;;8218:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8337:97;;;2869:66;8337:97;;;;;;;;-1:-1:-1;;;;;8337:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8327:108;;;;;8446:46;8386:4;8327:108;8484:1;8487;8490;8446:19;:46::i;:::-;-1:-1:-1;;;;;8505:24:0;;;;;;:18;:24;;;;;;;;:31;;;;;;;;;:38;;-1:-1:-1;;8505:38:0;8539:4;8505:38;;;8559:30;8530:5;;8505:24;8559:30;;;8602:26;8612:4;8618:2;8622:5;8602:9;:26::i;:::-;7786:850;;;;;;;;;;:::o;3432:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5976:180::-;6027:7;1894:66;2070;2248;6119:12;:10;:12::i;:::-;6141:4;6064:83;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6064:83:0;;;;;;;;;;;;;;;;;;;;;;;;6054:94;;;;;;6047:101;;5976:180;:::o;3161:39::-;;;;;;;;;;;;;;;:::o;5117:206::-;-1:-1:-1;;;;;5235:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;5284:31;;;;;;;;;;;;;;;;;5117:206;;;:::o;404:135::-;497:5;;;492:16;;;;484:47;;;;;-1:-1:-1;;;484:47:0;;;;;;;;;;;;-1:-1:-1;;;484:47:0;;;;;;;;;;;;;;5331:439;-1:-1:-1;;;;;5452:19:0;;5466:4;5452:19;;;;:39;;-1:-1:-1;;;;;;5475:16:0;;;;5452:39;5444:90;;;;-1:-1:-1;;;5444:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5644:15:0;;;;;;:9;:15;;;;;;:26;;5664:5;5644:19;:26::i;:::-;-1:-1:-1;;;;;5626:15:0;;;;;;;:9;:15;;;;;;:44;;;;5697:13;;;;;;;:24;;5715:5;5697:17;:24::i;:::-;-1:-1:-1;;;;;5681:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;5737:25;;;;;;;5681:13;;5737:25;;;;-1:-1:-1;;;;;;;;;;;5737:25:0;;;;;;;;5331:439;;;:::o;4606:204::-;4682:11;;:22;;4698:5;4682:15;:22::i;:::-;4668:11;:36;;;-1:-1:-1;;;;;4731:13:0;;;;:9;:13;;;;;;:24;;4749:5;4731:17;:24::i;:::-;-1:-1:-1;;;;;4715:13:0;;;;;;:9;:13;;;;;;;;:40;;;;4771:31;;;;;;;4715:13;;;;-1:-1:-1;;;;;;;;;;;4771:31:0;;;;;;;;;4606:204;;:::o;4818:291::-;-1:-1:-1;;;;;4979:15:0;;;;;;:9;:15;;;;;;:26;;4999:5;4979:19;:26::i;:::-;-1:-1:-1;;;;;4961:15:0;;;;;;:9;:15;;;;;:44;;;;5030:11;:22;;5046:5;5030:15;:22::i;:::-;5016:11;:36;;;5068:33;;;;;;;;-1:-1:-1;;;;;5068:33:0;;;-1:-1:-1;;;;;;;;;;;5068:33:0;;;;;;;;;4818:291;;:::o;262:134::-;355:5;;;350:16;;;;342:46;;;;;-1:-1:-1;;;342:46:0;;;;;;;;;;;;-1:-1:-1;;;342:46:0;;;;;;;;;;;;;;4033:565;4206:14;4262:20;:18;:20::i;:::-;4284:10;4233:62;;;;;;-1:-1:-1;;;4233:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4223:73;;;;;;4206:90;;4307:24;4334:26;4344:6;4352:1;4355;4358;4334:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4334:26:0;;-1:-1:-1;;4334:26:0;;;-1:-1:-1;;;;;;;4495:30:0;;;;;;:60;;;4549:6;-1:-1:-1;;;;;4529:26:0;:16;-1:-1:-1;;;;;4529:26:0;;4495:60;4487:103;;;;;-1:-1:-1;;;4487:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4033:565;;;;;;;:::o

Swarm Source

ipfs://4d8a9375ce9500e4c7d00d52f89a8f91865ac5f1ab3ee7fde3bd555bd069f59e
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.