Contract 0x02cd4089679eaa9431a88170fd784e7de78a2425 3

Contract Overview

Balance:
0 DEV
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5887c9aa9e50110bc3571e2981ac40e37490dc6b56358cf4aa26bb5610377e45Report Result56378122023-12-08 11:27:4826 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x53a22b737df38420d4c4b1b145d9b6147788702c29d6a425db33f61552609e9bReport Result56367892023-12-08 8:00:483 hrs 53 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0xee46931dd5e60af79db819742afaa1c5502e127e3b2bd379781a7e2f4a15de11Report Result56367572023-12-08 7:54:004 hrs ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x8c1f36b8ec599a5277b2282f5bcb2c8f4ccc6a6bfacb6b5277ea869d2cc77618Report Result56366572023-12-08 7:33:424 hrs 20 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0xe9843189b084477703b96e857f725a1feac9b35e9628150dd295b0ea0fc0bba0Report Result56357822023-12-08 4:36:427 hrs 17 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x9e856fa8517356810ff6b1ca8b4c450dc7a1ef2d7c0cdf5cf7dba62c7369804dReport Result56354202023-12-08 3:23:128 hrs 30 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x322ff6df4092fa93050ec05172200d2aca271db627be08e96fcc9cf9d4e2b998Report Result56352502023-12-08 2:48:429 hrs 5 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x20e51b25f374ac947ed17764502a9ffebc8e0a29611f744f446ee1a815d215d9Report Result56344892023-12-08 0:13:3611 hrs 40 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x8f2c3c7c97172fa4f05d2cbfc16d734c4bf540d32f64740dabb8419a2fff5351Report Result56341002023-12-07 22:54:4812 hrs 59 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x7cf03971ab42a492257eac3339f7eabab331190b1d2b1cc0e18d9d4a7f70955fReport Result56340222023-12-07 22:39:0013 hrs 15 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x0a46f91c6dfa5ef8ec59d16f3763073bcf6137a7bad645852b36a328c6864d14Report Result56339412023-12-07 22:22:3613 hrs 31 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x82fae78df026e6624028923813cd6462cdd94c71910e79d7120bcf98a4c2d881Report Result56337142023-12-07 21:36:0014 hrs 18 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x6538067293833c30e69c69b32a356a46f80131886f705d9de6d144ddc946c837Report Result56336252023-12-07 21:18:0014 hrs 36 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0xfc19f24c35aea0d28c7662840239df291d79e2ef1b82ad6402294972dda06c44Report Result56331052023-12-07 19:32:1216 hrs 21 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x482c7fd9a6aff2dc5c72a1cec97c8470c97c37fce1a68c03872d3ff6863a556bReport Result56328802023-12-07 18:46:3017 hrs 7 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x3cbd35e50d92bb85154a3a0f1da6494528575befb20f982880bdd23e4ec437edReport Result56328432023-12-07 18:39:0017 hrs 15 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x8c125aba399755008b41d549d35e0b23e509d1918b1330a004906489c6099c8eReport Result56326902023-12-07 18:08:1217 hrs 45 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x38cab3335b8f10f9738511f2ec9491e830befb7ce444249f219cebea058d0fc5Report Result56326462023-12-07 17:59:1217 hrs 54 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0xd71a67503413d7f8e41ba6ba71dfdb5ba05c79c9dfa7900fa65adbf3c7970977Report Result56325092023-12-07 17:30:4818 hrs 23 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x72df39e2881e7bba215dc526013f3d51e2be43e301826019855b315e5bc826d4Report Result56322612023-12-07 16:40:3019 hrs 13 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x47215124d7263773f9c5916e06a7cce994c6229d4a2048a4861f2b91c6a48975Report Result56320102023-12-07 15:48:0020 hrs 6 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0xb72288a37fab212a1af27c438964f76c0ccb0813d615f140be777fb2900824acReport Result56319772023-12-07 15:41:1820 hrs 12 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0xb53ebd54a4f5eb97b5c59bd1d1bfd743a3e8adfe6b7f79b9111c301495ece6b2Report Result56319592023-12-07 15:37:3620 hrs 16 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0xb768e70b285cc21500072ec34d7e80ea3fc27e00eada565920eb0b8b0add54adReport Result56319212023-12-07 15:29:5420 hrs 24 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
0x7b2996e09067c3e6685ae4c0a9ef133ee12c5510f2a6d797d2bd97e71225ad31Report Result56319002023-12-07 15:25:3020 hrs 28 mins ago0x8c49cafc4542d9ea9107d4e48412aced2a68aa77 IN 0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV0.000021228
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x5887c9aa9e50110bc3571e2981ac40e37490dc6b56358cf4aa26bb5610377e4556378122023-12-08 11:27:4826 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0xdad0c01a4ce304e1abfb26dff68c78ed154d9ef7fbbe3ed70df5d9a99441972456377882023-12-08 11:23:0031 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40.000014375 DEV
0xdad0c01a4ce304e1abfb26dff68c78ed154d9ef7fbbe3ed70df5d9a99441972456377882023-12-08 11:23:0031 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250.000014375 DEV
0xdad0c01a4ce304e1abfb26dff68c78ed154d9ef7fbbe3ed70df5d9a99441972456377882023-12-08 11:23:0031 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0xdad0c01a4ce304e1abfb26dff68c78ed154d9ef7fbbe3ed70df5d9a99441972456377882023-12-08 11:23:0031 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV
0xdad0c01a4ce304e1abfb26dff68c78ed154d9ef7fbbe3ed70df5d9a99441972456377882023-12-08 11:23:0031 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0xdad0c01a4ce304e1abfb26dff68c78ed154d9ef7fbbe3ed70df5d9a99441972456377882023-12-08 11:23:0031 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV
0xdad0c01a4ce304e1abfb26dff68c78ed154d9ef7fbbe3ed70df5d9a99441972456377882023-12-08 11:23:0031 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0xdad0c01a4ce304e1abfb26dff68c78ed154d9ef7fbbe3ed70df5d9a99441972456377882023-12-08 11:23:0031 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV
0x53a22b737df38420d4c4b1b145d9b6147788702c29d6a425db33f61552609e9b56367892023-12-08 8:00:483 hrs 53 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0x7b77a4331c839606bb156b74c3c9bdd5ac3043aad4644c8b68be14091a1395e756367592023-12-08 7:54:243 hrs 59 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40.000014375 DEV
0x7b77a4331c839606bb156b74c3c9bdd5ac3043aad4644c8b68be14091a1395e756367592023-12-08 7:54:243 hrs 59 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250.000014375 DEV
0x7b77a4331c839606bb156b74c3c9bdd5ac3043aad4644c8b68be14091a1395e756367592023-12-08 7:54:243 hrs 59 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0x7b77a4331c839606bb156b74c3c9bdd5ac3043aad4644c8b68be14091a1395e756367592023-12-08 7:54:243 hrs 59 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV
0x7b77a4331c839606bb156b74c3c9bdd5ac3043aad4644c8b68be14091a1395e756367592023-12-08 7:54:243 hrs 59 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0x7b77a4331c839606bb156b74c3c9bdd5ac3043aad4644c8b68be14091a1395e756367592023-12-08 7:54:243 hrs 59 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV
0x7b77a4331c839606bb156b74c3c9bdd5ac3043aad4644c8b68be14091a1395e756367592023-12-08 7:54:243 hrs 59 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0x7b77a4331c839606bb156b74c3c9bdd5ac3043aad4644c8b68be14091a1395e756367592023-12-08 7:54:243 hrs 59 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV
0xee46931dd5e60af79db819742afaa1c5502e127e3b2bd379781a7e2f4a15de1156367572023-12-08 7:54:004 hrs ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0x1b2a29f8a2aeda94821cfc3b9dff8a676e16490b773ea29d7362ebe6196573ba56367262023-12-08 7:47:364 hrs 6 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40.000014375 DEV
0x1b2a29f8a2aeda94821cfc3b9dff8a676e16490b773ea29d7362ebe6196573ba56367262023-12-08 7:47:364 hrs 6 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250.000014375 DEV
0x1b2a29f8a2aeda94821cfc3b9dff8a676e16490b773ea29d7362ebe6196573ba56367262023-12-08 7:47:364 hrs 6 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0x1b2a29f8a2aeda94821cfc3b9dff8a676e16490b773ea29d7362ebe6196573ba56367262023-12-08 7:47:364 hrs 6 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV
0x1b2a29f8a2aeda94821cfc3b9dff8a676e16490b773ea29d7362ebe6196573ba56367262023-12-08 7:47:364 hrs 6 mins ago 0x02cd4089679eaa9431a88170fd784e7de78a24250xca9e7861643febcea7c657ea8f012645d6accec40 DEV
0x1b2a29f8a2aeda94821cfc3b9dff8a676e16490b773ea29d7362ebe6196573ba56367262023-12-08 7:47:364 hrs 6 mins ago 0x2f0912fa566b5b3215e746dc108d85fdd4a8113a0x02cd4089679eaa9431a88170fd784e7de78a24250 DEV
[ Download CSV Export 
Index Block
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WitnetProxy

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at moonbase.moonscan.io on 2022-03-08
*/

// SPDX-License-Identifier: MIT


pragma solidity >=0.6.0 <0.9.0;

pragma experimental ABIEncoderV2;

// File: contracts\patterns\Initializable.sol
interface Initializable {
    /// @dev Initialize contract's storage context.
    function initialize(bytes calldata) external;
}
// File: contracts\patterns\Proxiable.sol
interface Proxiable {
    /// @dev Complying with EIP-1822: Universal Upgradable Proxy Standard (UUPS)
    /// @dev See https://eips.ethereum.org/EIPS/eip-1822.
    function proxiableUUID() external pure returns (bytes32);
}
// File: contracts\patterns\Upgradable.sol
/* solhint-disable var-name-mixedcase */




abstract contract Upgradable is Initializable, Proxiable {

    address internal immutable _BASE;
    bytes32 internal immutable _CODEHASH;
    bool internal immutable _UPGRADABLE;

    /// Emitted every time the contract gets upgraded.
    /// @param from The address who ordered the upgrading. Namely, the WRB operator in "trustable" implementations.
    /// @param baseAddr The address of the new implementation contract.
    /// @param baseCodehash The EVM-codehash of the new implementation contract.
    /// @param versionTag Ascii-encoded version literal with which the implementation deployer decided to tag it.
    event Upgraded(
        address indexed from,
        address indexed baseAddr,
        bytes32 indexed baseCodehash,
        bytes32 versionTag
    );

    constructor (bool _isUpgradable) {
        address _base = address(this);
        bytes32 _codehash;        
        assembly {
            _codehash := extcodehash(_base)
        }
        _BASE = _base;
        _CODEHASH = _codehash;        
        _UPGRADABLE = _isUpgradable;
    }

    /// @dev Tells whether provided address could eventually upgrade the contract.
    function isUpgradableFrom(address from) virtual external view returns (bool);


    /// TODO: the following methods should be all declared as pure 
    ///       whenever this Solidity's PR gets merged and released: 
    ///       https://github.com/ethereum/solidity/pull/10240

    /// @dev Retrieves base contract. Differs from address(this) when via delegate-proxy pattern.
    function base() public view returns (address) {
        return _BASE;
    }

    /// @dev Retrieves the immutable codehash of this contract, even if invoked as delegatecall.
    /// @return _codehash This contracts immutable codehash.
    function codehash() public view returns (bytes32 _codehash) {
        return _CODEHASH;
    }
    
    /// @dev Determines whether current instance allows being upgraded.
    /// @dev Returned value should be invariant from whoever is calling.
    function isUpgradable() public view returns (bool) {        
        return _UPGRADABLE;
    }

    /// @dev Retrieves human-redable named version of current implementation.
    function version() virtual public view returns (bytes32); 
}
// File: contracts\impls\WitnetProxy.sol
/// @title WitnetProxy: upgradable delegate-proxy contract that routes Witnet data requests coming from a 
/// `UsingWitnet`-inheriting contract to a currently active `WitnetRequestBoard` implementation. 
/// @author The Witnet Foundation.
contract WitnetProxy {

    struct WitnetProxySlot {
        address implementation;
    }

    /// Event emitted every time the implementation gets updated.
    event Upgraded(address indexed implementation);  

    /// Constructor with no params as to ease eventual support of Singleton pattern (i.e. ERC-2470).
    constructor () {}

    /// WitnetProxies will never accept direct transfer of ETHs.
    receive() external payable {
        revert("WitnetProxy: no transfers accepted");
    }

    /// Payable fallback accepts delegating calls to payable functions.  
    fallback() external payable { /* solhint-disable no-complex-fallback */
        address _implementation = implementation();

        assembly { /* solhint-disable avoid-low-level-calls */
            // Gas optimized delegate call to 'implementation' contract.
            // Note: `msg.data`, `msg.sender` and `msg.value` will be passed over 
            //       to actual implementation of `msg.sig` within `implementation` contract.
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let result := delegatecall(gas(), _implementation, ptr, calldatasize(), 0, 0)
            let size := returndatasize()
            returndatacopy(ptr, 0, size)
            switch result
                case 0  { 
                    // pass back revert message:
                    revert(ptr, size) 
                }
                default {
                  // pass back same data as returned by 'implementation' contract:
                  return(ptr, size) 
                }
        }
    }

    /// Returns proxy's current implementation address.
    function implementation() public view returns (address) {
        return _proxySlot().implementation;
    }

    /// Upgrades the `implementation` address.
    /// @param _newImplementation New implementation address.
    /// @param _initData Raw data with which new implementation will be initialized.
    /// @return Returns whether new implementation would be further upgradable, or not.
    function upgradeTo(address _newImplementation, bytes memory _initData)
        public returns (bool)
    {
        // New implementation cannot be null:
        require(_newImplementation != address(0), "WitnetProxy: null implementation");

        address _oldImplementation = implementation();
        if (_oldImplementation != address(0)) {
            // New implementation address must differ from current one:
            require(_newImplementation != _oldImplementation, "WitnetProxy: nothing to upgrade");

            // Assert whether current implementation is intrinsically upgradable:
            try Upgradable(_oldImplementation).isUpgradable() returns (bool _isUpgradable) {
                require(_isUpgradable, "WitnetProxy: not upgradable");
            } catch {
                revert("WitnetProxy: unable to check upgradability");
            }

            // Assert whether current implementation allows `msg.sender` to upgrade the proxy:
            (bool _wasCalled, bytes memory _result) = _oldImplementation.delegatecall(
                abi.encodeWithSignature(
                    "isUpgradableFrom(address)",
                    msg.sender
                )
            );
            require(_wasCalled, "WitnetProxy: not compliant");
            require(abi.decode(_result, (bool)), "WitnetProxy: not authorized");
            require(
                Upgradable(_oldImplementation).proxiableUUID() == Upgradable(_newImplementation).proxiableUUID(),
                "WitnetProxy: proxiableUUIDs mismatch"
            );
        }

        // Initialize new implementation within proxy-context storage:
        (bool _wasInitialized,) = _newImplementation.delegatecall(
            abi.encodeWithSignature(
                "initialize(bytes)",
                _initData
            )
        );
        require(_wasInitialized, "WitnetProxy: unable to initialize");

        // If all checks and initialization pass, update implementation address:
        _proxySlot().implementation = _newImplementation;
        emit Upgraded(_newImplementation);

        // Asserts new implementation complies w/ minimal implementation of Upgradable interface:
        try Upgradable(_newImplementation).isUpgradable() returns (bool _isUpgradable) {
            return _isUpgradable;
        }
        catch {
            revert ("WitnetProxy: not compliant");
        }
    }

    /// @dev Complying with EIP-1967, retrieves storage struct containing proxy's current implementation address.
    function _proxySlot() private pure returns (WitnetProxySlot storage _slot) {
        assembly {
            // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
            _slot.slot := 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
        }
    }

}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"},{"internalType":"bytes","name":"_initData","type":"bytes"}],"name":"upgradeTo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50610970806100206000396000f3fe60806040526004361061002d5760003560e01c80635c60da1b146100bb5780636fbc15e9146100ed5761008a565b3661008a5760405162461bcd60e51b815260206004820152602260248201527f5769746e657450726f78793a206e6f207472616e736665727320616363657074604482015261195960f21b60648201526084015b60405180910390fd5b600061009461011d565b905060405136600082376000803683855af43d806000843e8180156100b7578184f35b8184fd5b3480156100c757600080fd5b506100d061011d565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f957600080fd5b5061010d6101083660046107a9565b61014b565b60405190151581526020016100e4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b60006001600160a01b0383166101a35760405162461bcd60e51b815260206004820181905260248201527f5769746e657450726f78793a206e756c6c20696d706c656d656e746174696f6e6044820152606401610081565b60006101ad61011d565b90506001600160a01b0381161561058a57806001600160a01b0316846001600160a01b031614156102205760405162461bcd60e51b815260206004820152601f60248201527f5769746e657450726f78793a206e6f7468696e6720746f2075706772616465006044820152606401610081565b806001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561027a575060408051601f3d908101601f1916820190925261027791810190610879565b60015b6102d95760405162461bcd60e51b815260206004820152602a60248201527f5769746e657450726f78793a20756e61626c6520746f20636865636b207570676044820152697261646162696c69747960b01b6064820152608401610081565b806103265760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f742075706772616461626c6500000000006044820152606401610081565b5060405133602482015260009081906001600160a01b0384169060440160408051601f198184030181529181526020820180516001600160e01b03166335ac4b0560e11b1790525161037891906108d2565b600060405180830381855af49150503d80600081146103b3576040519150601f19603f3d011682016040523d82523d6000602084013e6103b8565b606091505b50915091508161040a5760405162461bcd60e51b815260206004820152601a60248201527f5769746e657450726f78793a206e6f7420636f6d706c69616e740000000000006044820152606401610081565b8080602001905181019061041e9190610879565b61046a5760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f7420617574686f72697a656400000000006044820152606401610081565b856001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cc91906108ee565b836001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052e91906108ee565b146105875760405162461bcd60e51b8152602060048201526024808201527f5769746e657450726f78793a2070726f786961626c655555494473206d69736d6044820152630c2e8c6d60e31b6064820152608401610081565b50505b6000846001600160a01b0316846040516024016105a79190610907565b60408051601f198184030181529181526020820180516001600160e01b031663439fab9160e01b179052516105dc91906108d2565b600060405180830381855af49150503d8060008114610617576040519150601f19603f3d011682016040523d82523d6000602084013e61061c565b606091505b50509050806106775760405162461bcd60e51b815260206004820152602160248201527f5769746e657450726f78793a20756e61626c6520746f20696e697469616c697a6044820152606560f81b6064820152608401610081565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0387169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2846001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610737575060408051601f3d908101601f1916820190925261073491810190610879565b60015b6107835760405162461bcd60e51b815260206004820152601a60248201527f5769746e657450726f78793a206e6f7420636f6d706c69616e740000000000006044820152606401610081565b925061078d915050565b92915050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156107bc57600080fd5b82356001600160a01b03811681146107d357600080fd5b9150602083013567ffffffffffffffff808211156107f057600080fd5b818501915085601f83011261080457600080fd5b81358181111561081657610816610793565b604051601f8201601f19908116603f0116810190838211818310171561083e5761083e610793565b8160405282815288602084870101111561085757600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561088b57600080fd5b8151801515811461089b57600080fd5b9392505050565b60005b838110156108bd5781810151838201526020016108a5565b838111156108cc576000848401525b50505050565b600082516108e48184602087016108a2565b9190910192915050565b60006020828403121561090057600080fd5b5051919050565b60208152600082518060208401526109268160408501602087016108a2565b601f01601f1916919091016040019291505056fea26469706673582212206aa37542ed392f6a2b75418274c31e6b24a2e07a0776d472663c2af2c62c146b64736f6c634300080b0033

Deployed ByteCode Sourcemap

3263:4977:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3720:44;;-1:-1:-1;;;3720:44:0;;216:2:1;3720:44:0;;;198:21:1;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:1;;;338:32;387:19;;3720:44:0;;;;;;;;3263:4977;3936:23;3962:16;:14;:16::i;:::-;3936:42;;4328:4;4322:11;4368:14;4365:1;4360:3;4347:36;4472:1;4469;4453:14;4448:3;4431:15;4424:5;4411:63;4500:16;4553:4;4550:1;4545:3;4530:28;4579:6;4603:119;;;;4865:4;4860:3;4853:17;4603:119;4697:4;4692:3;4685:17;4973:109;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;581:32:1;;;563:51;;551:2;536:18;4973:109:0;;;;;;;;5376:2448;;;;;;;;;;-1:-1:-1;5376:2448:0;;;;;:::i;:::-;;:::i;:::-;;;2022:14:1;;2015:22;1997:41;;1985:2;1970:18;5376:2448:0;1857:187:1;4973:109:0;8151:66;5047:27;-1:-1:-1;;;;;5047:27:0;;4973:109::o;5376:2448::-;5472:4;-1:-1:-1;;;;;5549:32:0;;5541:77;;;;-1:-1:-1;;;5541:77:0;;2251:2:1;5541:77:0;;;2233:21:1;;;2270:18;;;2263:30;2329:34;2309:18;;;2302:62;2381:18;;5541:77:0;2049:356:1;5541:77:0;5631:26;5660:16;:14;:16::i;:::-;5631:45;-1:-1:-1;;;;;;5691:32:0;;;5687:1282;;5843:18;-1:-1:-1;;;;;5821:40:0;:18;-1:-1:-1;;;;;5821:40:0;;;5813:84;;;;-1:-1:-1;;;5813:84:0;;2612:2:1;5813:84:0;;;2594:21:1;2651:2;2631:18;;;2624:30;2690:33;2670:18;;;2663:61;2741:18;;5813:84:0;2410:355:1;5813:84:0;6012:18;-1:-1:-1;;;;;6001:43:0;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6001:45:0;;;;;;;;-1:-1:-1;;6001:45:0;;;;;;;;;;;;:::i;:::-;;;5997:261;;6190:52;;-1:-1:-1;;;6190:52:0;;3254:2:1;6190:52:0;;;3236:21:1;3293:2;3273:18;;;3266:30;3332:34;3312:18;;;3305:62;-1:-1:-1;;;3383:18:1;;;3376:40;3433:19;;6190:52:0;3052:406:1;5997:261:0;6103:13;6095:53;;;;-1:-1:-1;;;6095:53:0;;3665:2:1;6095:53:0;;;3647:21:1;3704:2;3684:18;;;3677:30;3743:29;3723:18;;;3716:57;3790:18;;6095:53:0;3463:351:1;6095:53:0;-1:-1:-1;6462:125:0;;6558:10;6462:125;;;563:51:1;6371:15:0;;;;-1:-1:-1;;;;;6412:31:0;;;536:18:1;;6462:125:0;;;-1:-1:-1;;6462:125:0;;;;;;;;;;;;;;-1:-1:-1;;;;;6462:125:0;-1:-1:-1;;;6462:125:0;;;6412:190;;;6462:125;6412:190;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6370:232;;;;6625:10;6617:49;;;;-1:-1:-1;;;6617:49:0;;4563:2:1;6617:49:0;;;4545:21:1;4602:2;4582:18;;;4575:30;4641:28;4621:18;;;4614:56;4687:18;;6617:49:0;4361:350:1;6617:49:0;6700:7;6689:27;;;;;;;;;;;;:::i;:::-;6681:67;;;;-1:-1:-1;;;6681:67:0;;4918:2:1;6681:67:0;;;4900:21:1;4957:2;4937:18;;;4930:30;4996:29;4976:18;;;4969:57;5043:18;;6681:67:0;4716:351:1;6681:67:0;6850:18;-1:-1:-1;;;;;6839:44:0;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6800:18;-1:-1:-1;;;;;6789:44:0;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:96;6763:194;;;;-1:-1:-1;;;6763:194:0;;5463:2:1;6763:194:0;;;5445:21:1;5502:2;5482:18;;;5475:30;5541:34;5521:18;;;5514:62;-1:-1:-1;;;5592:18:1;;;5585:34;5636:19;;6763:194:0;5261:400:1;6763:194:0;5725:1244;;5687:1282;7054:20;7079:18;-1:-1:-1;;;;;7079:31:0;7205:9;7125:104;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7125:104:0;;;;;;;;;;;;;;-1:-1:-1;;;;;7125:104:0;-1:-1:-1;;;7125:104:0;;;7079:161;;;7125:104;7079:161;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7053:187;;;7259:15;7251:61;;;;-1:-1:-1;;;7251:61:0;;6254:2:1;7251:61:0;;;6236:21:1;6293:2;6273:18;;;6266:30;6332:34;6312:18;;;6305:62;-1:-1:-1;;;6383:18:1;;;6376:31;6424:19;;7251:61:0;6052:397:1;7251:61:0;8151:66;7407:48;;-1:-1:-1;;;;;;7407:48:0;-1:-1:-1;;;;;7407:48:0;;;;;;;;7471:28;;;;-1:-1:-1;;7471:28:0;7626:18;-1:-1:-1;;;;;7615:43:0;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7615:45:0;;;;;;;;-1:-1:-1;;7615:45:0;;;;;;;;;;;;:::i;:::-;;;7611:206;;7768:37;;-1:-1:-1;;;7768:37:0;;4563:2:1;7768:37:0;;;4545:21:1;4602:2;4582:18;;;4575:30;4641:28;4621:18;;;4614:56;4687:18;;7768:37:0;4361:350:1;7611:206:0;7712:13;-1:-1:-1;7705:20:0;;-1:-1:-1;;7705:20:0;5376:2448;;;;;:::o;625:127:1:-;686:10;681:3;677:20;674:1;667:31;717:4;714:1;707:15;741:4;738:1;731:15;757:1095;834:6;842;895:2;883:9;874:7;870:23;866:32;863:52;;;911:1;908;901:12;863:52;937:23;;-1:-1:-1;;;;;989:31:1;;979:42;;969:70;;1035:1;1032;1025:12;969:70;1058:5;-1:-1:-1;1114:2:1;1099:18;;1086:32;1137:18;1167:14;;;1164:34;;;1194:1;1191;1184:12;1164:34;1232:6;1221:9;1217:22;1207:32;;1277:7;1270:4;1266:2;1262:13;1258:27;1248:55;;1299:1;1296;1289:12;1248:55;1335:2;1322:16;1357:2;1353;1350:10;1347:36;;;1363:18;;:::i;:::-;1438:2;1432:9;1406:2;1492:13;;-1:-1:-1;;1488:22:1;;;1512:2;1484:31;1480:40;1468:53;;;1536:18;;;1556:22;;;1533:46;1530:72;;;1582:18;;:::i;:::-;1622:10;1618:2;1611:22;1657:2;1649:6;1642:18;1697:7;1692:2;1687;1683;1679:11;1675:20;1672:33;1669:53;;;1718:1;1715;1708:12;1669:53;1774:2;1769;1765;1761:11;1756:2;1748:6;1744:15;1731:46;1819:1;1814:2;1809;1801:6;1797:15;1793:24;1786:35;1840:6;1830:16;;;;;;;757:1095;;;;;:::o;2770:277::-;2837:6;2890:2;2878:9;2869:7;2865:23;2861:32;2858:52;;;2906:1;2903;2896:12;2858:52;2938:9;2932:16;2991:5;2984:13;2977:21;2970:5;2967:32;2957:60;;3013:1;3010;3003:12;2957:60;3036:5;2770:277;-1:-1:-1;;;2770:277:1:o;3819:258::-;3891:1;3901:113;3915:6;3912:1;3909:13;3901:113;;;3991:11;;;3985:18;3972:11;;;3965:39;3937:2;3930:10;3901:113;;;4032:6;4029:1;4026:13;4023:48;;;4067:1;4058:6;4053:3;4049:16;4042:27;4023:48;;3819:258;;;:::o;4082:274::-;4211:3;4249:6;4243:13;4265:53;4311:6;4306:3;4299:4;4291:6;4287:17;4265:53;:::i;:::-;4334:16;;;;;4082:274;-1:-1:-1;;4082:274:1:o;5072:184::-;5142:6;5195:2;5183:9;5174:7;5170:23;5166:32;5163:52;;;5211:1;5208;5201:12;5163:52;-1:-1:-1;5234:16:1;;5072:184;-1:-1:-1;5072:184:1:o;5666:381::-;5813:2;5802:9;5795:21;5776:4;5845:6;5839:13;5888:6;5883:2;5872:9;5868:18;5861:34;5904:66;5963:6;5958:2;5947:9;5943:18;5938:2;5930:6;5926:15;5904:66;:::i;:::-;6031:2;6010:15;-1:-1:-1;;6006:29:1;5991:45;;;;6038:2;5987:54;;5666:381;-1:-1:-1;;5666:381:1:o

Swarm Source

ipfs://6aa37542ed392f6a2b75418274c31e6b24a2e07a0776d472663c2af2c62c146b
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading