Contract 0xb56848e9e75d027d6682dce64c244cfa53e15d56

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash
Block
From
To
Value [Txn Fee]
0xe07a837c2bc779b947b32ce133972bcc3b89c7b967f1b30440fe389162a549aa94953402021-07-26 13:52:142 mins ago0x5be9ffc3812a6b9eff05e49718cf2aea07944e6c IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00008115
0xaae24561412d53fb2240e3839598f713c95fb1cceabff6c6c763f0576eb636ba94952752021-07-26 13:48:555 mins ago0x4759999ed90e1cce51b8cf3604a9907ea9d145a4 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0xbb6338c16f03b16118bb53ac39266052a0a7ccd23ed6bada0b39e8b9c8ab8b0194951632021-07-26 13:42:5211 mins ago0x4759999ed90e1cce51b8cf3604a9907ea9d145a4 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00008115
0x0f01f1bbfabfa50e9fc984368c07d54828bcf3767984c026b5bf125460369d3494946712021-07-26 13:17:4336 mins ago0xefa9c22393e9a955a641a309cb8544b8b3bb045d IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0x01a269b1129b7542b23ab9af13fc517df1cfe027c22069c94ee980896a90839a94946502021-07-26 13:16:4038 mins ago0xefa9c22393e9a955a641a309cb8544b8b3bb045d IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0x0ab860a4b3d41619cb07eb03a9a32fcbfa9a56393fc6e31eb18bb70ca82b942194944802021-07-26 13:07:5446 mins ago0xefa9c22393e9a955a641a309cb8544b8b3bb045d IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0x975ab6af0c144f89bfc8f97a3d9ce62f9a4682c0df42965d0411abddde51bf3194944122021-07-26 13:03:5750 mins ago0xefa9c22393e9a955a641a309cb8544b8b3bb045d IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0x88e7778ca48c8299d45de1e979019d6f066e58179d6956bfbea48ee0c8ede39f94943182021-07-26 12:58:5155 mins ago0xefa9c22393e9a955a641a309cb8544b8b3bb045d IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0xd7be68253ff836080426b6dc535706d23fb831ec6214ddc5fcdfc7d91d7d4aa494942982021-07-26 12:57:5156 mins ago0xefa9c22393e9a955a641a309cb8544b8b3bb045d IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0x56bb7b122ff823c06c577dfe09fbd89a521aac645c4939f94a283eac52dcdd2494941622021-07-26 12:50:291 hr 4 mins ago0xe647e4efb1f867a92667d394c33b7521db8cb55c IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070245
0x243823791521e857ffd3f22c1a5c194cdd31b22a97f2c73cb48ee84a4a004d6e94940962021-07-26 12:47:111 hr 7 mins ago0xe647e4efb1f867a92667d394c33b7521db8cb55c IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070245
0xe9c3b0d1cf90ef9c2d3b2a42004581ba8cd2d5348c8c2442f3f877377a747ccb94929952021-07-26 11:49:312 hrs 5 mins ago0x71d8f548af4131665b3c53580f41039c65a139d4 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0x43755e4b7d71d27b1c4cdc1dd741a947dbbab179dfc77ea3823534a7f144a75d94929772021-07-26 11:48:262 hrs 6 mins ago0x71d8f548af4131665b3c53580f41039c65a139d4 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0x3a460e70e897d5bd4a00bdd2325a08f6f14171754e542d01531d327eae3b0c0294929082021-07-26 11:44:502 hrs 9 mins ago0xee8bd042cac0bedfb43f016ffad1b19b80913df0 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070233
0xdc27f6ac978dd1b7b5eb294cd1b46dbf9222d96b7657d9e1ea8031f6f5186cc094928732021-07-26 11:42:532 hrs 11 mins ago0xee8bd042cac0bedfb43f016ffad1b19b80913df0 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070239
0x53391c76d2af99b5e43e8946dc0bd28d2c25fc3f9c261cc61ce0a5c6f05d24bc94928482021-07-26 11:41:262 hrs 13 mins ago0xee8bd042cac0bedfb43f016ffad1b19b80913df0 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00008115
0x2880d8a4b965c75af6764c42838e05c5f3ddb97fae4606d559cd08ff7ade232a94926622021-07-26 11:31:532 hrs 22 mins ago0xee8bd042cac0bedfb43f016ffad1b19b80913df0 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070239
0xd5472ba8048131300cdcee6f30540d32e00bc0f43808343eca37b1dea750cbdf94926392021-07-26 11:30:302 hrs 24 mins ago0xe6a86f1b3b4085177e8fa5b34e99eae63f853f77 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560.205 BNB0.000437535
0xf55ea20e78fa1270bd1182bfd2b856f48971c29dc9f29958316cefc9cd53741494925752021-07-26 11:27:082 hrs 27 mins ago0xe6a86f1b3b4085177e8fa5b34e99eae63f853f77 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00008115
0xfc8e8126e3e0ddf16252e3e4cdcca3cffd7c5e09dc8a542cd4fe6da876029a7694923092021-07-26 11:12:242 hrs 42 mins ago0xe6a86f1b3b4085177e8fa5b34e99eae63f853f77 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560.1025 BNB0.000437535
0x52d50ff459ed43b3f2c9d354445aa8d2c74949d5a2446657249b6be37041e5f794921212021-07-26 11:02:412 hrs 52 mins ago0xe6a86f1b3b4085177e8fa5b34e99eae63f853f77 IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560.82 BNB0.000437535
0x884d31b77ffca3db91cf2372b8e04c66c2e33d45ba8959a0db26b6e755b78dde94920672021-07-26 10:59:452 hrs 54 mins ago0x7a51dd7afd1413ca01390ee1ee7389df34386e1e IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00070251
0x1f2ce39cb12eb7d08af351aa692bbeef12d72e3199d0d2556c0ad9e4659023c694918992021-07-26 10:51:123 hrs 3 mins ago0x7a51dd7afd1413ca01390ee1ee7389df34386e1e IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00013515
0xead7faa488b1c4c7d4f9ce7d7ad3ac82979b760aaab588f03d237daeb364990f94918612021-07-26 10:49:183 hrs 5 mins ago0x7a51dd7afd1413ca01390ee1ee7389df34386e1e IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00013515
0xfba24d9b5788a7e96ba95789465e06e921f29de841e51c38d2c156ce3c25da6894918342021-07-26 10:47:493 hrs 6 mins ago0x7a51dd7afd1413ca01390ee1ee7389df34386e1e IN  0xb56848e9e75d027d6682dce64c244cfa53e15d560 BNB0.00008115
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd5472ba8048131300cdcee6f30540d32e00bc0f43808343eca37b1dea750cbdf94926392021-07-26 11:30:302 hrs 24 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560xd1fc7e7e3deb00dce69d73b93eda876155ee19e00.175 BNB
0xd5472ba8048131300cdcee6f30540d32e00bc0f43808343eca37b1dea750cbdf94926392021-07-26 11:30:302 hrs 24 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560xd1fc7e7e3deb00dce69d73b93eda876155ee19e00.02 BNB
0xd5472ba8048131300cdcee6f30540d32e00bc0f43808343eca37b1dea750cbdf94926392021-07-26 11:30:302 hrs 24 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d56 0xe5bc770f0d1e33b862c637d32ab871690df85c680.01 BNB
0xfc8e8126e3e0ddf16252e3e4cdcca3cffd7c5e09dc8a542cd4fe6da876029a7694923092021-07-26 11:12:242 hrs 42 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560xefa9c22393e9a955a641a309cb8544b8b3bb045d0.0875 BNB
0xfc8e8126e3e0ddf16252e3e4cdcca3cffd7c5e09dc8a542cd4fe6da876029a7694923092021-07-26 11:12:242 hrs 42 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560xefa9c22393e9a955a641a309cb8544b8b3bb045d0.01 BNB
0xfc8e8126e3e0ddf16252e3e4cdcca3cffd7c5e09dc8a542cd4fe6da876029a7694923092021-07-26 11:12:242 hrs 42 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d56 0xe5bc770f0d1e33b862c637d32ab871690df85c680.005 BNB
0x52d50ff459ed43b3f2c9d354445aa8d2c74949d5a2446657249b6be37041e5f794921212021-07-26 11:02:412 hrs 52 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560xa176dc6f768fb5dc134a891c6f2d7b1a96cc73500.7 BNB
0x52d50ff459ed43b3f2c9d354445aa8d2c74949d5a2446657249b6be37041e5f794921212021-07-26 11:02:412 hrs 52 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560xa176dc6f768fb5dc134a891c6f2d7b1a96cc73500.08 BNB
0x52d50ff459ed43b3f2c9d354445aa8d2c74949d5a2446657249b6be37041e5f794921212021-07-26 11:02:412 hrs 52 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d56 0xe5bc770f0d1e33b862c637d32ab871690df85c680.04 BNB
0xce8fc34e6577c406cba99a95a6066f703d13a86c9b892f86782dab031b8b4fac94828752021-07-26 3:10:4010 hrs 44 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560x51f2d71dce9aec50a16176e4167eab22b885077c0.0175 BNB
0xce8fc34e6577c406cba99a95a6066f703d13a86c9b892f86782dab031b8b4fac94828752021-07-26 3:10:4010 hrs 44 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560x51f2d71dce9aec50a16176e4167eab22b885077c0.002 BNB
0xce8fc34e6577c406cba99a95a6066f703d13a86c9b892f86782dab031b8b4fac94828752021-07-26 3:10:4010 hrs 44 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d56 0xe5bc770f0d1e33b862c637d32ab871690df85c680.001 BNB
0xbeb206a46bb91a14acfc2cfe932c37b41e52494ecdd39dfe255548f5349f179b94764362021-07-25 21:47:3416 hrs 7 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560x2c70a62ca2df7f927bc197fa225f4e215eba22600.112 BNB
0xbeb206a46bb91a14acfc2cfe932c37b41e52494ecdd39dfe255548f5349f179b94764362021-07-25 21:47:3416 hrs 7 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560x2c70a62ca2df7f927bc197fa225f4e215eba22600.0128 BNB
0xbeb206a46bb91a14acfc2cfe932c37b41e52494ecdd39dfe255548f5349f179b94764362021-07-25 21:47:3416 hrs 7 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d56 0xe5bc770f0d1e33b862c637d32ab871690df85c680.0064 BNB
0x617eb3a98aa41f836efc6c7bfad0d19f16b88eeff107ec6b8cfd15c0fd00ab6194743192021-07-25 20:01:1817 hrs 53 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560xf97f4b3795d77d63d81019c37d5b20c9fbd58b080.0230375 BNB
0x617eb3a98aa41f836efc6c7bfad0d19f16b88eeff107ec6b8cfd15c0fd00ab6194743192021-07-25 20:01:1817 hrs 53 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d56 0xe5bc770f0d1e33b862c637d32ab871690df85c680.02425 BNB
0x617eb3a98aa41f836efc6c7bfad0d19f16b88eeff107ec6b8cfd15c0fd00ab6194743192021-07-25 20:01:1817 hrs 53 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d56 0xe5bc770f0d1e33b862c637d32ab871690df85c680.002425 BNB
0xd934e1f729e7ada8b272ce1ae510f97e09603a006b6a81a5666fc1be255f945b94729312021-07-25 18:51:5319 hrs 2 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560xc51b65bbed1cca49e95f03d8e7ae6597c9b07ea80.525 BNB
0xd934e1f729e7ada8b272ce1ae510f97e09603a006b6a81a5666fc1be255f945b94729312021-07-25 18:51:5319 hrs 2 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560xc51b65bbed1cca49e95f03d8e7ae6597c9b07ea80.06 BNB
0xd934e1f729e7ada8b272ce1ae510f97e09603a006b6a81a5666fc1be255f945b94729312021-07-25 18:51:5319 hrs 2 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d56 0xe5bc770f0d1e33b862c637d32ab871690df85c680.03 BNB
0x84e52130a7cdcdf1998c6798da34365de80dc1fc3040a05c7d7e74d35dfe3c2a94729082021-07-25 18:50:4419 hrs 3 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560x38b66c508abf9f10d35caffc91e4754e9afda36d1.75 BNB
0x84e52130a7cdcdf1998c6798da34365de80dc1fc3040a05c7d7e74d35dfe3c2a94729082021-07-25 18:50:4419 hrs 3 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560x38b66c508abf9f10d35caffc91e4754e9afda36d0.2 BNB
0x84e52130a7cdcdf1998c6798da34365de80dc1fc3040a05c7d7e74d35dfe3c2a94729082021-07-25 18:50:4419 hrs 3 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d56 0xe5bc770f0d1e33b862c637d32ab871690df85c680.1 BNB
0xca3e2199ae8be6ffbbaa2a63c1d5447c3edaed67855145b0af1df4385752807094720402021-07-25 18:07:2019 hrs 47 mins ago 0xb56848e9e75d027d6682dce64c244cfa53e15d560x1953ee4d9f31d22299c96204bb67874a8352f3090.175 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Marketplace

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-05-20
*/

pragma solidity ^0.6.12;
pragma experimental ABIEncoderV2;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

/**
 * @dev Implementation of the {IERC165} interface.
 *
 * Contracts may inherit from this and call {_registerInterface} to declare
 * their support of an interface.
 */
abstract contract ERC165 is IERC165 {
    /*
     * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7
     */
    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;

    /**
     * @dev Mapping of interface ids to whether or not it's supported.
     */
    mapping(bytes4 => bool) private _supportedInterfaces;

    constructor () internal {
        // Derived contracts need only register support for their own interfaces,
        // we register support for ERC165 itself here
        _registerInterface(_INTERFACE_ID_ERC165);
    }

    /**
     * @dev See {IERC165-supportsInterface}.
     *
     * Time complexity O(1), guaranteed to always use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) public view override returns (bool) {
        return _supportedInterfaces[interfaceId];
    }

    /**
     * @dev Registers the contract as an implementer of the interface defined by
     * `interfaceId`. Support of the actual ERC165 interface is automatic and
     * registering its interface id is not required.
     *
     * See {IERC165-supportsInterface}.
     *
     * Requirements:
     *
     * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).
     */
    function _registerInterface(bytes4 interfaceId) internal virtual {
        require(interfaceId != 0xffffffff, "ERC165: invalid interface id");
        _supportedInterfaces[interfaceId] = true;
    }
}

/**
    @title ERC-1155 Multi Token Standard
    @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md
    Note: The ERC-165 identifier for this interface is 0xd9b67a26.
 */
interface IERC1155 is IERC165 {
    /**
        @dev Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard).
        The `_operator` argument MUST be msg.sender.
        The `_from` argument MUST be the address of the holder whose balance is decreased.
        The `_to` argument MUST be the address of the recipient whose balance is increased.
        The `_id` argument MUST be the token type being transferred.
        The `_value` argument MUST be the number of tokens the holder balance is decreased by and match what the recipient balance is increased by.
        When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address).
        When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address).
    */
    event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);

    /**
        @dev Either `TransferSingle` or `TransferBatch` MUST emit when tokens are transferred, including zero value transfers as well as minting or burning (see "Safe Transfer Rules" section of the standard).
        The `_operator` argument MUST be msg.sender.
        The `_from` argument MUST be the address of the holder whose balance is decreased.
        The `_to` argument MUST be the address of the recipient whose balance is increased.
        The `_ids` argument MUST be the list of tokens being transferred.
        The `_values` argument MUST be the list of number of tokens (matching the list and order of tokens specified in _ids) the holder balance is decreased by and match what the recipient balance is increased by.
        When minting/creating tokens, the `_from` argument MUST be set to `0x0` (i.e. zero address).
        When burning/destroying tokens, the `_to` argument MUST be set to `0x0` (i.e. zero address).
    */
    event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);

    /**
        @dev MUST emit when approval for a second party/operator address to manage all tokens for an owner address is enabled or disabled (absense of an event assumes disabled).
    */
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

    /**
        @dev MUST emit when the URI is updated for a token ID.
        URIs are defined in RFC 3986.
        The URI MUST point a JSON file that conforms to the "ERC-1155 Metadata URI JSON Schema".
    */
    event URI(string _value, uint256 indexed _id);

    /**
        @notice Transfers `_value` amount of an `_id` from the `_from` address to the `_to` address specified (with safety call).
        @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard).
        MUST revert if `_to` is the zero address.
        MUST revert if balance of holder for token `_id` is lower than the `_value` sent.
        MUST revert on any other error.
        MUST emit the `TransferSingle` event to reflect the balance change (see "Safe Transfer Rules" section of the standard).
        After the above conditions are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call `onERC1155Received` on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard).
        @param _from    Source address
        @param _to      Target address
        @param _id      ID of the token type
        @param _value   Transfer amount
        @param _data    Additional data with no specified format, MUST be sent unaltered in call to `onERC1155Received` on `_to`
    */
    function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes calldata _data) external;

    /**
        @notice Transfers `_values` amount(s) of `_ids` from the `_from` address to the `_to` address specified (with safety call).
        @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard).
        MUST revert if `_to` is the zero address.
        MUST revert if length of `_ids` is not the same as length of `_values`.
        MUST revert if any of the balance(s) of the holder(s) for token(s) in `_ids` is lower than the respective amount(s) in `_values` sent to the recipient.
        MUST revert on any other error.
        MUST emit `TransferSingle` or `TransferBatch` event(s) such that all the balance changes are reflected (see "Safe Transfer Rules" section of the standard).
        Balance changes and events MUST follow the ordering of the arrays (_ids[0]/_values[0] before _ids[1]/_values[1], etc).
        After the above conditions for the transfer(s) in the batch are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call the relevant `ERC1155TokenReceiver` hook(s) on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard).
        @param _from    Source address
        @param _to      Target address
        @param _ids     IDs of each token type (order and length must match _values array)
        @param _values  Transfer amounts per token type (order and length must match _ids array)
        @param _data    Additional data with no specified format, MUST be sent unaltered in call to the `ERC1155TokenReceiver` hook(s) on `_to`
    */
    function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _values, bytes calldata _data) external;

    /**
        @notice Get the balance of an account's Tokens.
        @param _owner  The address of the token holder
        @param _id     ID of the Token
        @return        The _owner's balance of the Token type requested
     */
    function balanceOf(address _owner, uint256 _id) external view returns (uint256);

    /**
        @notice Get the balance of multiple account/token pairs
        @param _owners The addresses of the token holders
        @param _ids    ID of the Tokens
        @return        The _owner's balance of the Token types requested (i.e. balance for each (owner, id) pair)
     */
    function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory);

    /**
        @notice Enable or disable approval for a third party ("operator") to manage all of the caller's tokens.
        @dev MUST emit the ApprovalForAll event on success.
        @param _operator  Address to add to the set of authorized operators
        @param _approved  True if the operator is approved, false to revoke approval
    */
    function setApprovalForAll(address _operator, bool _approved) external;

    /**
        @notice Queries the approval status of an operator for a given owner.
        @param _owner     The owner of the Tokens
        @param _operator  Address of authorized operator
        @return           True if the operator is approved, false if not
    */
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

abstract contract Collection is IERC1155 {
    mapping (uint256 => address) public creators;
    function getFeeRecipients(uint256 id) external virtual view returns (address payable[] memory);
    function getFeeBps(uint256 id) external virtual view returns (uint[] memory);
}

contract Marketplace is Ownable {
    using SafeMath for uint256;

    struct nftToken {
        address collection;
        uint256 id;
    }

    struct Position {
        nftToken nft;
        uint256 amount;
        uint256 price;
        address owner;
    }

    mapping (uint256 => Position) public positions;
    uint256 public positionsCount = 0;
    address public marketplaceBeneficiaryAddress;
    uint256 private marketplaceBeneficiaryFee = 250;

    event NewPosition(address indexed owner, uint256 indexed id);
    event Buy(
        address owner,
        address buyer,
        uint256 position,
        address indexed collection,
        uint256 indexed token,
        uint256 amount,
        uint256 price
    );
    event Cancel(
        address owner,
        uint256 position,
        address indexed collection,
        uint256 indexed token
    );

    constructor(address _marketplaceBeneficiaryAddress) public {
        marketplaceBeneficiaryAddress = _marketplaceBeneficiaryAddress;
    }

    function changeMarketplaceBeneficiary(address _marketplaceBeneficiaryAddress) external onlyOwner {
        marketplaceBeneficiaryAddress = _marketplaceBeneficiaryAddress;
    }

    function putOnSale(
        address _collection,
        uint256 _id,
        uint256 _amount,
        uint256 _price
    ) external returns(uint256) {
        require(Collection(_collection).balanceOf(msg.sender, _id) >= _amount, "Error");
        require(Collection(_collection).creators(_id) != address(0), "Error");
        positionsCount++;
        positions[positionsCount] = Position(
            nftToken(_collection, _id),
            _amount,
            _price,
            msg.sender
        );

        emit NewPosition(msg.sender, positionsCount);
        return positionsCount;
    }

    function cancel(uint256 _id) external {
        require(msg.sender == positions[_id].owner, "Error");
        positions[_id].amount = 0;

        emit Cancel(
            msg.sender,
            _id,
            positions[_id].nft.collection,
            positions[_id].nft.id
        );
    }

    function buy(
        uint256 _position,
        uint256 _amount,
        address _buyer,
        bytes calldata _data
    ) payable external {
        Position memory position = positions[_position];
        Collection collection = Collection(position.nft.collection);
        require(position.amount >= _amount, "Error");

        transferWithFees(_position, _amount);

        if (_buyer == address(0)) {
            _buyer = msg.sender;
        }
        collection.safeTransferFrom(
            position.owner,
            _buyer,
            position.nft.id,
            _amount,
            _data
        );
        emit Buy(
            position.owner,
            _buyer,
            _position, position.nft.collection, position.nft.id,
            _amount,
            position.price
        );
    }

    function transferWithFees(uint256 _position, uint256 _amount) internal {
        Position storage position = positions[_position];
        uint256 price = position.price.mul(_amount);
        uint256 buyerFee = getFee(price, marketplaceBeneficiaryFee);
        uint256 ethAmount = price.add(buyerFee);
        require(msg.value >= ethAmount, "Insufficient balance");

        uint256 returnBack = msg.value.sub(ethAmount);
        if(returnBack > 0) {
            msg.sender.transfer(returnBack);
        }
        position.amount = position.amount.sub(_amount);

        if (buyerFee > 0) {
            payable(marketplaceBeneficiaryAddress).transfer(buyerFee.mul(2));
        }
        uint256 fees = transferFees(position.nft, price).add(getFee(price, marketplaceBeneficiaryFee));
        payable(position.owner).transfer(price.sub(fees));
    }

    function transferFees(nftToken memory _nft, uint256 _price) internal returns(uint256) {
        Collection collection = Collection(_nft.collection);
        uint256 result = 0;
        uint[] memory fees = collection.getFeeBps(_nft.id);
        address payable[] memory recipients = collection.getFeeRecipients(_nft.id);
        for (uint256 i = 0; i < fees.length; i++) {
            uint256 fee = getFee(_price, fees[i]);
            if (fee > 0) {
                recipients[i].transfer(fee);
                result = result.add(fee);
            }
        }
        return result;
    }

    function getFee(uint256 _amount, uint256 _fee) internal pure returns(uint256) {
        return _amount.mul(_fee).div(10000);
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketplaceBeneficiaryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"position","type":"uint256"},{"indexed":true,"internalType":"address","name":"collection","type":"address"},{"indexed":true,"internalType":"uint256","name":"token","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"position","type":"uint256"},{"indexed":true,"internalType":"address","name":"collection","type":"address"},{"indexed":true,"internalType":"uint256","name":"token","type":"uint256"}],"name":"Cancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"NewPosition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"_position","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_buyer","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketplaceBeneficiaryAddress","type":"address"}],"name":"changeMarketplaceBeneficiary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketplaceBeneficiaryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"positions","outputs":[{"components":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"internalType":"struct Marketplace.nftToken","name":"nft","type":"tuple"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"positionsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_collection","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"putOnSale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600060025560fa60045534801561001a57600080fd5b5060405161136c38038061136c833981016040819052610039916100b6565b60006100436100b2565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600380546001600160a01b0319166001600160a01b03929092169190911790556100e4565b3390565b6000602082840312156100c7578081fd5b81516001600160a01b03811681146100dd578182fd5b9392505050565b611279806100f36000396000f3fe6080604052600436106100915760003560e01c80639000ff09116100595780639000ff091461014557806399fbab8814610158578063aeadb8e014610188578063dc9733c71461019d578063f2fde38b146101b257610091565b806340e58ee5146100965780634ae0f551146100b85780635dc952c2146100d8578063715018a61461010e5780638da5cb5b14610123575b600080fd5b3480156100a257600080fd5b506100b66100b1366004610e96565b6101d2565b005b3480156100c457600080fd5b506100b66100d3366004610d02565b61027b565b3480156100e457600080fd5b506100f86100f3366004610d3a565b6102d2565b60405161010591906111db565b60405180910390f35b34801561011a57600080fd5b506100b66104df565b34801561012f57600080fd5b5061013861055e565b6040516101059190610f57565b6100b6610153366004610ec6565b61056d565b34801561016457600080fd5b50610178610173366004610e96565b6106e6565b60405161010594939291906111a1565b34801561019457600080fd5b506100f8610730565b3480156101a957600080fd5b50610138610736565b3480156101be57600080fd5b506100b66101cd366004610d02565b610745565b6000818152600160205260409020600401546001600160a01b031633146102145760405162461bcd60e51b815260040161020b90611182565b60405180910390fd5b6000818152600160208190526040808320600281019390935590820154915490516001600160a01b03909116907fb8b7c5e8b8890227e1f8844a1b6bf94a9061b5ff6f8c75ae7db63926b22be27a906102709033908690610f6b565b60405180910390a350565b6102836107fb565b6000546001600160a01b039081169116146102b05760405162461bcd60e51b815260040161020b9061114d565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600082856001600160a01b031662fdd58e33876040518363ffffffff1660e01b8152600401610302929190610f6b565b60206040518083038186803b15801561031a57600080fd5b505afa15801561032e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103529190610eae565b10156103705760405162461bcd60e51b815260040161020b90611182565b6040516366a9e84760e11b81526000906001600160a01b0387169063cd53d08e9061039f9088906004016111db565b60206040518083038186803b1580156103b757600080fd5b505afa1580156103cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ef9190610d1e565b6001600160a01b031614156104165760405162461bcd60e51b815260040161020b90611182565b6002805460019081018083556040805160c0810182526001600160a01b03808b166080830190815260a083018b9052825260208083018a81528385018a8152336060860181815260009889528985528789209651805188549088166001600160a01b0319918216178955950151998701999099559151858a0155516003850155955160049093018054939092169216919091179055925492517fd4c1b45f1ec09667398d1c934903dcd7200052bb709fc1c29089fab30717b3029190a350600254949350505050565b6104e76107fb565b6000546001600160a01b039081169116146105145760405162461bcd60e51b815260040161020b9061114d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b610575610cb4565b50600085815260016020818152604092839020835160c08101855281546001600160a01b03908116608083018181529584015460a0840152948252600283015493820184905260038301549582019590955260049091015490931660608401528611156105f45760405162461bcd60e51b815260040161020b90611182565b6105fe87876107ff565b6001600160a01b038516610610573394505b6060820151825160200151604051637921219560e11b81526001600160a01b0384169263f242432a9261064e928a91908c908b908b90600401610f84565b600060405180830381600087803b15801561066857600080fd5b505af115801561067c573d6000803e3d6000fd5b5050835160208101519051606086015160408088015190519395506001600160a01b0390921693507f8abc67a01b839149f8dda5edb6c458ef52dd07b8b1db47184dfa83f95ae2aad4926106d5928b918e918e91610fdd565b60405180910390a350505050505050565b600160208181526000928352604092839020835180850190945280546001600160a01b03908116855292810154918401919091526002810154600382015460049092015490921684565b60025481565b6003546001600160a01b031681565b61074d6107fb565b6000546001600160a01b0390811691161461077a5760405162461bcd60e51b815260040161020b9061114d565b6001600160a01b0381166107a05760405162461bcd60e51b815260040161020b90611061565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6000828152600160205260408120600381015490919061081f9084610993565b9050600061082f826004546109d6565b9050600061083d83836109ee565b90508034101561085f5760405162461bcd60e51b815260040161020b906110de565b600061086b3483610a13565b905080156108a257604051339082156108fc029083906000818181858888f193505050501580156108a0573d6000803e3d6000fd5b505b60028501546108b19087610a13565b60028601558215610900576003546001600160a01b03166108fc6108d6856002610993565b6040518115909202916000818181858888f193505050501580156108fe573d6000803e3d6000fd5b505b6000610942610911866004546109d6565b6040805180820190915288546001600160a01b031681526001890154602082015261093c9088610a55565b906109ee565b60048701549091506001600160a01b03166108fc6109608784610a13565b6040518115909202916000818181858888f19350505050158015610988573d6000803e3d6000fd5b505050505050505050565b6000826109a2575060006109d0565b828202828482816109af57fe5b04146109cd5760405162461bcd60e51b815260040161020b9061110c565b90505b92915050565b60006109cd6127106109e88585610993565b90610c0f565b6000828201838110156109cd5760405162461bcd60e51b815260040161020b906110a7565b60006109cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c51565b81516020830151604051630ebd4c7f60e01b81526000929183916060916001600160a01b03851691630ebd4c7f91610a8f916004016111db565b60006040518083038186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae39190810190610e12565b90506060836001600160a01b031663b9c4d9fb88602001516040518263ffffffff1660e01b8152600401610b1791906111db565b60006040518083038186803b158015610b2f57600080fd5b505afa158015610b43573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b6b9190810190610d74565b905060005b8251811015610c03576000610b9888858481518110610b8b57fe5b60200260200101516109d6565b90508015610bfa57828281518110610bac57fe5b60200260200101516001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610bec573d6000803e3d6000fd5b50610bf785826109ee565b94505b50600101610b70565b50919695505050505050565b60006109cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c7d565b60008184841115610c755760405162461bcd60e51b815260040161020b919061100e565b505050900390565b60008183610c9e5760405162461bcd60e51b815260040161020b919061100e565b506000838581610caa57fe5b0495945050505050565b6040518060800160405280610cc7610ceb565b8152602001600081526020016000815260200160006001600160a01b031681525090565b604080518082019091526000808252602082015290565b600060208284031215610d13578081fd5b81356109cd8161122b565b600060208284031215610d2f578081fd5b81516109cd8161122b565b60008060008060808587031215610d4f578283fd5b8435610d5a8161122b565b966020860135965060408601359560600135945092505050565b60006020808385031215610d86578182fd5b825167ffffffffffffffff811115610d9c578283fd5b8301601f81018513610dac578283fd5b8051610dbf610dba8261120b565b6111e4565b8181528381019083850185840285018601891015610ddb578687fd5b8694505b83851015610e06578051610df28161122b565b835260019490940193918501918501610ddf565b50979650505050505050565b60006020808385031215610e24578182fd5b825167ffffffffffffffff811115610e3a578283fd5b8301601f81018513610e4a578283fd5b8051610e58610dba8261120b565b8181528381019083850185840285018601891015610e74578687fd5b8694505b83851015610e06578051835260019490940193918501918501610e78565b600060208284031215610ea7578081fd5b5035919050565b600060208284031215610ebf578081fd5b5051919050565b600080600080600060808688031215610edd578081fd5b85359450602086013593506040860135610ef68161122b565b9250606086013567ffffffffffffffff80821115610f12578283fd5b818801915088601f830112610f25578283fd5b813581811115610f33578384fd5b896020828501011115610f44578384fd5b9699959850939650602001949392505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03878116825286166020820152604081018590526060810184905260a06080820181905281018290526000828460c084013781830160c090810191909152601f909201601f1916010195945050505050565b6001600160a01b03958616815293909416602084015260408301919091526060820152608081019190915260a00190565b6000602080835283518082850152825b8181101561103a5785810183015185820160400152820161101e565b8181111561104b5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526005908201526422b93937b960d91b604082015260600190565b84516001600160a01b0390811682526020958601519582019590955260408101939093526060830191909152909116608082015260a00190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561120357600080fd5b604052919050565b600067ffffffffffffffff821115611221578081fd5b5060209081020190565b6001600160a01b038116811461124057600080fd5b5056fea26469706673582212202605c4d439bd9954a6b79466266e225473c6b1b21876e4c32918ad5fda66cbb064736f6c634300060c0033000000000000000000000000e5bc770f0d1e33b862c637d32ab871690df85c68

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

000000000000000000000000e5bc770f0d1e33b862c637d32ab871690df85c68

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e5bc770f0d1e33b862c637d32ab871690df85c68


Deployed ByteCode Sourcemap

24854:4651:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26727:303;;;;;;;;;;-1:-1:-1;26727:303:0;;;;;:::i;:::-;;:::i;:::-;;25917:178;;;;;;;;;;-1:-1:-1;25917:178:0;;;;;:::i;:::-;;:::i;26103:616::-;;;;;;;;;;-1:-1:-1;26103:616:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24016:148;;;;;;;;;;;;;:::i;23374:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;27038:839::-;;;;;;:::i;:::-;;:::i;25138:46::-;;;;;;;;;;-1:-1:-1;25138:46:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;25191:33::-;;;;;;;;;;;;;:::i;25231:44::-;;;;;;;;;;;;;:::i;24319:244::-;;;;;;;;;;-1:-1:-1;24319:244:0;;;;;:::i;:::-;;:::i;26727:303::-;26798:14;;;;:9;:14;;;;;:20;;;-1:-1:-1;;;;;26798:20:0;26784:10;:34;26776:52;;;;-1:-1:-1;;;26776:52:0;;;;;;;:::i;:::-;;;;;;;;;26863:1;26839:14;;;:9;:14;;;;;;;;:21;;;:25;;;;26990:21;;;;26946:29;;26882:140;;-1:-1:-1;;;;;26946:29:0;;;;26882:140;;;;26903:10;;26849:3;;26882:140;:::i;:::-;;;;;;;;26727:303;:::o;25917:178::-;23596:12;:10;:12::i;:::-;23586:6;;-1:-1:-1;;;;;23586:6:0;;;:22;;;23578:67;;;;-1:-1:-1;;;23578:67:0;;;;;;;:::i;:::-;26025:29:::1;:62:::0;;-1:-1:-1;;;;;;26025:62:0::1;-1:-1:-1::0;;;;;26025:62:0;;;::::1;::::0;;;::::1;::::0;;25917:178::o;26103:616::-;26249:7;26331;26288:11;-1:-1:-1;;;;;26277:33:0;;26311:10;26323:3;26277:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;;26269:79;;;;-1:-1:-1;;;26269:79:0;;;;;;;:::i;:::-;26367:37;;-1:-1:-1;;;26367:37:0;;26416:1;;-1:-1:-1;;;;;26367:32:0;;;;;:37;;26400:3;;26367:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;26367:51:0;;;26359:69;;;;-1:-1:-1;;;26359:69:0;;;;;;;:::i;:::-;26439:14;:16;;;;;;;;;26494:128;;;26517:26;;;;;-1:-1:-1;;;;;26517:26:0;;;26494:128;;;26517:26;;;;;;;;;26494:128;;26517:26;26494:128;;;;;;;;;;;;26601:10;-1:-1:-1;26494:128:0;;;;;26439:14;26466:25;;;;;;;;;:156;;;;;;;;;-1:-1:-1;;;;;;26466:156:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26664:14;;26640:39;;;;26439:14;26640:39;-1:-1:-1;26697:14:0;;26103:616;;;;;;:::o;24016:148::-;23596:12;:10;:12::i;:::-;23586:6;;-1:-1:-1;;;;;23586:6:0;;;:22;;;23578:67;;;;-1:-1:-1;;;23578:67:0;;;;;;;:::i;:::-;24123:1:::1;24107:6:::0;;24086:40:::1;::::0;-1:-1:-1;;;;;24107:6:0;;::::1;::::0;24086:40:::1;::::0;24123:1;;24086:40:::1;24154:1;24137:19:::0;;-1:-1:-1;;;;;;24137:19:0::1;::::0;;24016:148::o;23374:79::-;23412:7;23439:6;-1:-1:-1;;;;;23439:6:0;23374:79;:::o;27038:839::-;27196:24;;:::i;:::-;-1:-1:-1;27223:20:0;;;;:9;:20;;;;;;;;;27196:47;;;;;;;;;-1:-1:-1;;;;;27196:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27196:47:0;;;27332:26;-1:-1:-1;27332:26:0;27324:44;;;;-1:-1:-1;;;27324:44:0;;;;;;;:::i;:::-;27381:36;27398:9;27409:7;27381:16;:36::i;:::-;-1:-1:-1;;;;;27434:20:0;;27430:72;;27480:10;27471:19;;27430:72;27554:14;;;;27604:12;;:15;;;27512:160;;-1:-1:-1;;;27512:160:0;;-1:-1:-1;;;;;27512:27:0;;;;;:160;;27583:6;;27604:15;27634:7;;27656:5;;;;27512:160;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27792:12:0;;:15;;;;27767:23;;27706:14;;;;27844;;;;;27688:181;;27792:15;;-1:-1:-1;;;;;;27688:181:0;;;;-1:-1:-1;27688:181:0;;;;27735:6;;27756:9;;27822:7;;27688:181;:::i;:::-;;;;;;;;27038:839;;;;;;;:::o;25138:46::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25138:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;25191:33::-;;;;:::o;25231:44::-;;;-1:-1:-1;;;;;25231:44:0;;:::o;24319:244::-;23596:12;:10;:12::i;:::-;23586:6;;-1:-1:-1;;;;;23586:6:0;;;:22;;;23578:67;;;;-1:-1:-1;;;23578:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24408:22:0;::::1;24400:73;;;;-1:-1:-1::0;;;24400:73:0::1;;;;;;;:::i;:::-;24510:6;::::0;;24489:38:::1;::::0;-1:-1:-1;;;;;24489:38:0;;::::1;::::0;24510:6;::::1;::::0;24489:38:::1;::::0;::::1;24538:6;:17:::0;;-1:-1:-1;;;;;;24538:17:0::1;-1:-1:-1::0;;;;;24538:17:0;;;::::1;::::0;;;::::1;::::0;;24319:244::o;22012:106::-;22100:10;22012:106;:::o;27885:866::-;27967:25;27995:20;;;:9;:20;;;;;28042:14;;;;27995:20;;27967:25;28042:27;;28061:7;28042:18;:27::i;:::-;28026:43;;28080:16;28099:40;28106:5;28113:25;;28099:6;:40::i;:::-;28080:59;-1:-1:-1;28150:17:0;28170:19;:5;28080:59;28170:9;:19::i;:::-;28150:39;;28221:9;28208;:22;;28200:55;;;;-1:-1:-1;;;28200:55:0;;;;;;;:::i;:::-;28268:18;28289:24;:9;28303;28289:13;:24::i;:::-;28268:45;-1:-1:-1;28327:14:0;;28324:77;;28358:31;;:10;;:31;;;;;28378:10;;28358:31;;;;28378:10;28358;:31;;;;;;;;;;;;;;;;;;;;;28324:77;28429:15;;;;:28;;28449:7;28429:19;:28::i;:::-;28411:15;;;:46;28474:12;;28470:109;;28511:29;;-1:-1:-1;;;;;28511:29:0;28503:64;28551:15;:8;28564:1;28551:12;:15::i;:::-;28503:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28470:109;28589:12;28604:79;28642:40;28649:5;28656:25;;28642:6;:40::i;:::-;28604:33;;;;;;;;;;;-1:-1:-1;;;;;28604:33:0;;;;;;;;;;;;;28631:5;28604:12;:33::i;:::-;:37;;:79::i;:::-;28702:14;;;;28589:94;;-1:-1:-1;;;;;;28702:14:0;28694:49;28727:15;:5;28589:94;28727:9;:15::i;:::-;28694:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27885:866;;;;;;;;:::o;8418:471::-;8476:7;8721:6;8717:47;;-1:-1:-1;8751:1:0;8744:8;;8717:47;8788:5;;;8792:1;8788;:5;:1;8812:5;;;;;:10;8804:56;;;;-1:-1:-1;;;8804:56:0;;;;;;;:::i;:::-;8880:1;-1:-1:-1;8418:471:0;;;;;:::o;29370:132::-;29439:7;29466:28;29488:5;29466:17;:7;29478:4;29466:11;:17::i;:::-;:21;;:28::i;7064:181::-;7122:7;7154:5;;;7178:6;;;;7170:46;;;;-1:-1:-1;;;7170:46:0;;;;;;;:::i;7528:136::-;7586:7;7613:43;7617:1;7620;7613:43;;;;;;;;;;;;;;;;;:3;:43::i;28759:603::-;28891:15;;28989:7;;;;28968:29;;-1:-1:-1;;;28968:29:0;;28836:7;;28891:15;28836:7;;28947:18;;-1:-1:-1;;;;;28968:20:0;;;;;:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;28968:29:0;;;;;;;;;;;;:::i;:::-;28947:50;;29008:35;29046:10;-1:-1:-1;;;;;29046:27:0;;29074:4;:7;;;29046:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;29046:36:0;;;;;;;;;;;;:::i;:::-;29008:74;;29098:9;29093:238;29117:4;:11;29113:1;:15;29093:238;;;29150:11;29164:23;29171:6;29179:4;29184:1;29179:7;;;;;;;;;;;;;;29164:6;:23::i;:::-;29150:37;-1:-1:-1;29206:7:0;;29202:118;;29234:10;29245:1;29234:13;;;;;;;;;;;;;;-1:-1:-1;;;;;29234:22:0;:27;29257:3;29234:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29289:15:0;:6;29300:3;29289:10;:15::i;:::-;29280:24;;29202:118;-1:-1:-1;29130:3:0;;29093:238;;;-1:-1:-1;29348:6:0;;28759:603;-1:-1:-1;;;;;;28759:603:0:o;9365:132::-;9423:7;9450:39;9454:1;9457;9450:39;;;;;;;;;;;;;;;;;:3;:39::i;7967:192::-;8053:7;8089:12;8081:6;;;;8073:29;;;;-1:-1:-1;;;8073:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;8125:5:0;;;7967:192::o;9993:278::-;10079:7;10114:12;10107:5;10099:28;;;;-1:-1:-1;;;10099:28:0;;;;;;;;:::i;:::-;;10138:9;10154:1;10150;:5;;;;;;;9993:278;-1:-1:-1;;;;;9993:278:0:o;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;2604:241::-;;2708:2;2696:9;2687:7;2683:23;2679:32;2676:2;;;-1:-1;;2714:12;2676:2;85:6;72:20;97:33;124:5;97:33;:::i;2852:263::-;;2967:2;2955:9;2946:7;2942:23;2938:32;2935:2;;;-1:-1;;2973:12;2935:2;226:6;220:13;238:33;265:5;238:33;:::i;3122:617::-;;;;;3277:3;3265:9;3256:7;3252:23;3248:33;3245:2;;;-1:-1;;3284:12;3245:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3336:63;3436:2;3475:22;;2393:20;;-1:-1;3544:2;3583:22;;2393:20;;3652:2;3691:22;2393:20;;-1:-1;3239:500;-1:-1;;;3239:500::o;3746:408::-;;3894:2;;3882:9;3873:7;3869:23;3865:32;3862:2;;;-1:-1;;3900:12;3862:2;3951:17;3945:24;3989:18;3981:6;3978:30;3975:2;;;-1:-1;;4011:12;3975:2;4106:22;;595:4;583:17;;579:27;-1:-1;569:2;;-1:-1;;610:12;569:2;650:6;644:13;672:88;687:72;752:6;687:72;:::i;:::-;672:88;:::i;:::-;788:21;;;845:14;;;;820:17;;;934;;;925:27;;;;922:36;-1:-1;919:2;;;-1:-1;;961:12;919:2;-1:-1;987:10;;981:225;1006:6;1003:1;1000:13;981:225;;;375:6;369:13;387:41;422:5;387:41;:::i;:::-;1074:69;;1028:1;1021:9;;;;;1157:14;;;;1185;;981:225;;;-1:-1;4031:107;3856:298;-1:-1;;;;;;;3856:298::o;4161:392::-;;4301:2;;4289:9;4280:7;4276:23;4272:32;4269:2;;;-1:-1;;4307:12;4269:2;4358:17;4352:24;4396:18;4388:6;4385:30;4382:2;;;-1:-1;;4418:12;4382:2;4505:22;;1359:4;1347:17;;1343:27;-1:-1;1333:2;;-1:-1;;1374:12;1333:2;1414:6;1408:13;1436:80;1451:64;1508:6;1451:64;:::i;1436:80::-;1544:21;;;1601:14;;;;1576:17;;;1690;;;1681:27;;;;1678:36;-1:-1;1675:2;;;-1:-1;;1717:12;1675:2;-1:-1;1743:10;;1737:217;1762:6;1759:1;1756:13;1737:217;;;2541:13;;1830:61;;1784:1;1777:9;;;;;1905:14;;;;1933;;1737:217;;4560:241;;4664:2;4652:9;4643:7;4639:23;4635:32;4632:2;;;-1:-1;;4670:12;4632:2;-1:-1;2393:20;;4626:175;-1:-1;4626:175::o;4808:263::-;;4923:2;4911:9;4902:7;4898:23;4894:32;4891:2;;;-1:-1;;4929:12;4891:2;-1:-1;2541:13;;4885:186;-1:-1;4885:186::o;5078:741::-;;;;;;5252:3;5240:9;5231:7;5227:23;5223:33;5220:2;;;-1:-1;;5259:12;5220:2;2406:6;2393:20;5311:63;;5411:2;5454:9;5450:22;2393:20;5419:63;;5519:2;5562:9;5558:22;72:20;97:33;124:5;97:33;:::i;:::-;5527:63;-1:-1;5655:2;5640:18;;5627:32;5679:18;5668:30;;;5665:2;;;-1:-1;;5701:12;5665:2;5786:6;5775:9;5771:22;;;2096:3;2089:4;2081:6;2077:17;2073:27;2063:2;;-1:-1;;2104:12;2063:2;2147:6;2134:20;5679:18;2166:6;2163:30;2160:2;;;-1:-1;;2196:12;2160:2;2291:3;5411:2;2271:17;2232:6;2257:32;;2254:41;2251:2;;;-1:-1;;2298:12;2251:2;5214:605;;;;-1:-1;5214:605;;-1:-1;5411:2;2228:17;;5721:82;5214:605;-1:-1;;;5214:605::o;9751:222::-;-1:-1;;;;;17169:54;;;;6036:37;;9878:2;9863:18;;9849:124::o;9980:349::-;-1:-1;;;;;17169:54;;;;5905:58;;10315:2;10300:18;;9582:37;10143:2;10128:18;;10114:215::o;10336:772::-;-1:-1;;;;;17169:54;;;6036:37;;17169:54;;10768:2;10753:18;;6036:37;10851:2;10836:18;;9582:37;;;10934:2;10919:18;;9582:37;;;17180:42;10971:3;10956:19;;10949:49;;;10588:19;;16663;;;10336:772;16675:6;17770:3;16703:14;;;17752:30;17813:16;;;16703:14;17813:16;;;17806:27;;;;18208:7;18192:14;;;-1:-1;;18188:28;6480:39;;;10574:534;-1:-1;;;;;10574:534::o;11115:668::-;-1:-1;;;;;17169:54;;;6036:37;;17169:54;;;;11519:2;11504:18;;6036:37;11602:2;11587:18;;9582:37;;;;11685:2;11670:18;;9582:37;11768:3;11753:19;;9582:37;;;;11354:3;11339:19;;11325:458::o;11790:310::-;;11937:2;;11958:17;11951:47;6678:5;16519:12;16675:6;11937:2;11926:9;11922:18;16663:19;-1:-1;17920:101;17934:6;17931:1;17928:13;17920:101;;;18001:11;;;;;17995:18;17982:11;;;16703:14;17982:11;17975:39;17949:10;;17920:101;;;18036:6;18033:1;18030:13;18027:2;;;-1:-1;16703:14;18092:6;11926:9;18083:16;;18076:27;18027:2;-1:-1;18208:7;18192:14;-1:-1;;18188:28;6836:39;;;;16703:14;6836:39;;11908:192;-1:-1;;;11908:192::o;12107:416::-;12307:2;12321:47;;;7112:2;12292:18;;;16663:19;7148:34;16703:14;;;7128:55;-1:-1;;;7203:12;;;7196:30;7245:12;;;12278:245::o;12530:416::-;12730:2;12744:47;;;7496:2;12715:18;;;16663:19;7532:29;16703:14;;;7512:50;7581:12;;;12701:245::o;12953:416::-;13153:2;13167:47;;;7832:2;13138:18;;;16663:19;-1:-1;;;16703:14;;;7848:43;7910:12;;;13124:245::o;13376:416::-;13576:2;13590:47;;;8161:2;13561:18;;;16663:19;8197:34;16703:14;;;8177:55;-1:-1;;;8252:12;;;8245:25;8289:12;;;13547:245::o;13799:416::-;13999:2;14013:47;;;13984:18;;;16663:19;8576:34;16703:14;;;8556:55;8630:12;;;13970:245::o;14222:416::-;14422:2;14436:47;;;8881:1;14407:18;;;16663:19;-1:-1;;;16703:14;;;8896:28;8943:12;;;14393:245::o;14645:657::-;9249:23;;-1:-1;;;;;17169:54;;;6036:37;;9418:4;9407:16;;;9401:23;9478:14;;;9582:37;;;;15121:2;15106:18;;9582:37;;;;15204:2;15189:18;;9582:37;;;;17169:54;;;15287:3;15272:19;;6036:37;14906:3;14891:19;;14877:425::o;15309:222::-;9582:37;;;15436:2;15421:18;;15407:124::o;15538:256::-;15600:2;15594:9;15626:17;;;15701:18;15686:34;;15722:22;;;15683:62;15680:2;;;15758:1;;15748:12;15680:2;15600;15767:22;15578:216;;-1:-1;15578:216::o;15801:312::-;;15968:18;15960:6;15957:30;15954:2;;;-1:-1;;15990:12;15954:2;-1:-1;16035:4;16023:17;;;16088:15;;15891:222::o;18229:117::-;-1:-1;;;;;17169:54;;18288:35;;18278:2;;18337:1;;18327:12;18278:2;18272:74;:::o

Swarm Source

ipfs://2605c4d439bd9954a6b79466266e225473c6b1b21876e4c32918ad5fda66cbb0
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.