Contract 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 1

 
Txn Hash Method
Block
From
To
Value
0xfc4fd79ac30cc28b6cd82005633448ab7e96643a63cabc266cab46c1b048edeeReport Result9936282023-03-30 12:28:301 hr 25 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002529531
0x1889e41e4aa15a3356b15add056c57d1c71e0ef33f8efd925bb4c93c1781fbffReport Result9935812023-03-30 11:22:402 hrs 31 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002487161
0x831cf42a202bc96d74a89b3fcb37781912721cdf52a633c17ecdf576cacbe7dfReport Result9934402023-03-30 8:14:515 hrs 39 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002733811
0xb6187a86b82d6d3660d30c5d16bba55b00be3e2290a42cbe661a28a0e8992f4dReport Result9933342023-03-30 6:51:157 hrs 2 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002554161
0xdcd395d411cbfb63f4637abe978f695556378cf00a4359e251003e3ee4e263f8Report Result9932872023-03-30 5:57:097 hrs 56 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002452011
0xd703cbf6c6ad26266646ed4a4cb3cccacc13a0aa1d607335c82987e6c588f0a2Report Result9932562023-03-30 4:13:149 hrs 40 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002606341
0x8a12cec43716e37c2b9e1bb8aea3e837b7895f6db171c9fdfaa2d95d369af337Report Result9932222023-03-30 3:55:579 hrs 57 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002546711
0x94945f605914f92024a686bbc533affdbb0539d52287f7a99dd64ad41f97fc25Report Result9932072023-03-30 3:34:3610 hrs 19 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002673271
0x6f5b6d6130b4de5efc59841581d094ff6935542e95c16f69a8abd14dc8e0369dReport Result9932002023-03-30 3:14:5010 hrs 39 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0003133941
0x5c877f4d8aa55d1345fd33719ee0324ec5eb78633007bd957fc72f283d8fadda0x81a398b59931852023-03-30 3:00:2110 hrs 53 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0003718011
0x4c021d4d4aefaf5df0ddbf2e5a87fd74fa92a9022611c161c717986e0a99ae9eReport Result9931552023-03-30 2:27:4211 hrs 26 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.000255711
0x30d8230f01f8ca246b71a8eaf6f97fb4b7ad1dc8043a7c3442a62bd6dae26154Report Result9930862023-03-30 2:10:4711 hrs 43 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002628021
0x9e15a393c8bf8d5a8f1a2a6042cddca0ee381c3d1d61f857761c289566dc26fcReport Result9930432023-03-30 1:58:3611 hrs 55 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.000284321
0x00b5afeec55da41d8df34351bf2f2e604d14cf6083a4cdcc95dc8fe551e776520x81a398b59930302023-03-30 1:42:5712 hrs 10 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0003561121
0x5f2cdb996f72d9544b56b67668e8f90bd18d21dc3fd36988332bccc29cdb9d97Report Result9930112023-03-30 1:15:3412 hrs 38 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002717111
0xe795200e4cbc86d9bcd31f6a2f0cc6ce63098bff364200c6d58519116daceb54Report Result9930052023-03-30 1:05:0012 hrs 48 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002816841
0x4160bba6c0a6c634f6a863d976ecb08c0f0d09e110530cf10d1f128d7c1c346cReport Result9929932023-03-30 0:25:0413 hrs 28 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002426861
0xb5a6520b173f9621adecb5b93c1023bf27bdfe9062c0640e00e5d7cba9f20759Report Result9929682023-03-30 0:09:2813 hrs 44 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002447751
0xeed8fe9936a3b1d89bbe83ec7c7d8de8bf171d0fcd4c076bdae18dcb348db671Report Result9929262023-03-29 22:42:2515 hrs 11 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002419211
0x64cb6ec31d92e99c2f1ec7c81b457349c072d837577f06bc43a82a489137c4daReport Result9929232023-03-29 22:31:5515 hrs 21 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002536651
0x5b8fe9860048222b22664e3c50f83dfcc334a0defec38e48840434f861e30b75Report Result9929202023-03-29 22:20:4015 hrs 33 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002493831
0x9b0ac1935a8ebac5f8ff92f381bbcdb29ef359f8a7d2e8fbd68568c0d6ffc588Report Result9929192023-03-29 22:17:4015 hrs 36 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002493831
0x80c451ec8e24650af2e8ed627060832e496e9e817bd8fdde55c468883f155154Report Result9929122023-03-29 22:05:3515 hrs 48 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002457761
0x76f4553b416e8743d180bd8416327f4da86e919594c841ced7f42193df1a8182Report Result9929042023-03-29 21:43:0016 hrs 10 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0002818221
0x12aaed7fbc249dcaf792ee1d14d649c9bc0aaa908d7c43109d01039701617bd0Report Result9929012023-03-29 21:29:4116 hrs 24 mins ago0x102cb4da51a9936ba2297be8c930b4ca658586da IN  0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether0.0003236971
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xfc4fd79ac30cc28b6cd82005633448ab7e96643a63cabc266cab46c1b048edee9936282023-03-30 12:28:301 hr 25 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920x102cb4da51a9936ba2297be8c930b4ca658586da0.000245 Ether
0xfc4fd79ac30cc28b6cd82005633448ab7e96643a63cabc266cab46c1b048edee9936282023-03-30 12:28:301 hr 25 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0x5fb499336aee67ec1183f49a8265cc3e2599c2ae0 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0x5fb499336aee67ec1183f49a8265cc3e2599c2ae 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920.000245 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0x5fb499336aee67ec1183f49a8265cc3e2599c2ae 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0x5fb499336aee67ec1183f49a8265cc3e2599c2ae 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0x4e6d068f43ae28ce4a7bc97d9dc5fdfb8a55f0080 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0x6473063ebeabc0606a4159b7d9f79bb306ed0d2a0 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0x5fb499336aee67ec1183f49a8265cc3e2599c2ae 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xa4e583f42104a85de0ec0829472892495ec8e12b68ebf3530b4afc09e56d4cd29936262023-03-30 12:23:381 hr 30 mins ago 0x5fb499336aee67ec1183f49a8265cc3e2599c2ae 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether
0x1889e41e4aa15a3356b15add056c57d1c71e0ef33f8efd925bb4c93c1781fbff9935812023-03-30 11:22:402 hrs 31 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920x102cb4da51a9936ba2297be8c930b4ca658586da0.000245 Ether
0x1889e41e4aa15a3356b15add056c57d1c71e0ef33f8efd925bb4c93c1781fbff9935812023-03-30 11:22:402 hrs 31 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xd642d0aa64847e46766f20b5381291c2e023d4a37abf04b3039f11234e42efce9935802023-03-30 11:18:272 hrs 35 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0x0dd81412825b9c3960195ab47f14dfa9fd70e36e0 Ether
0xd642d0aa64847e46766f20b5381291c2e023d4a37abf04b3039f11234e42efce9935802023-03-30 11:18:272 hrs 35 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xd642d0aa64847e46766f20b5381291c2e023d4a37abf04b3039f11234e42efce9935802023-03-30 11:18:272 hrs 35 mins ago 0x0dd81412825b9c3960195ab47f14dfa9fd70e36e 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920.000245 Ether
0xd642d0aa64847e46766f20b5381291c2e023d4a37abf04b3039f11234e42efce9935802023-03-30 11:18:272 hrs 35 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xd642d0aa64847e46766f20b5381291c2e023d4a37abf04b3039f11234e42efce9935802023-03-30 11:18:272 hrs 35 mins ago 0x0dd81412825b9c3960195ab47f14dfa9fd70e36e 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether
0xd642d0aa64847e46766f20b5381291c2e023d4a37abf04b3039f11234e42efce9935802023-03-30 11:18:272 hrs 35 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0xbf5ad4c8524a618c853008f8eeabe13dc31af7980 Ether
0xd642d0aa64847e46766f20b5381291c2e023d4a37abf04b3039f11234e42efce9935802023-03-30 11:18:272 hrs 35 mins ago 0x0dd81412825b9c3960195ab47f14dfa9fd70e36e 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e2920 Ether
0xd642d0aa64847e46766f20b5381291c2e023d4a37abf04b3039f11234e42efce9935802023-03-30 11:18:272 hrs 35 mins ago 0xd3ad9a4b26527e3ba5fc60b75eb002d47d98e292 0x4e6d068f43ae28ce4a7bc97d9dc5fdfb8a55f0080 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WitnetProxy

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at bobascan.com on 2022-09-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 Security Audit

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"}]

608060405234801561001057600080fd5b506109ac806100206000396000f3fe60806040526004361061002d5760003560e01c80635c60da1b146100bb5780636fbc15e9146100ed5761008a565b3661008a5760405162461bcd60e51b815260206004820152602260248201527f5769746e657450726f78793a206e6f207472616e736665727320616363657074604482015261195960f21b60648201526084015b60405180910390fd5b600061009461011d565b905060405136600082376000803683855af43d806000843e8180156100b7578184f35b8184fd5b3480156100c757600080fd5b506100d061011d565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f957600080fd5b5061010d6101083660046107e5565b61014b565b60405190151581526020016100e4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b60006001600160a01b0383166101a35760405162461bcd60e51b815260206004820181905260248201527f5769746e657450726f78793a206e756c6c20696d706c656d656e746174696f6e6044820152606401610081565b60006101ad61011d565b90506001600160a01b038116156105b757806001600160a01b0316846001600160a01b031614156102205760405162461bcd60e51b815260206004820152601f60248201527f5769746e657450726f78793a206e6f7468696e6720746f2075706772616465006044820152606401610081565b806001600160a01b0316635479d9406040518163ffffffff1660e01b815260040160206040518083038186803b15801561025957600080fd5b505afa925050508015610289575060408051601f3d908101601f19168201909252610286918101906108b5565b60015b6102e85760405162461bcd60e51b815260206004820152602a60248201527f5769746e657450726f78793a20756e61626c6520746f20636865636b207570676044820152697261646162696c69747960b01b6064820152608401610081565b806103355760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f742075706772616461626c6500000000006044820152606401610081565b5060405133602482015260009081906001600160a01b0384169060440160408051601f198184030181529181526020820180516001600160e01b03166335ac4b0560e11b17905251610387919061090e565b600060405180830381855af49150503d80600081146103c2576040519150601f19603f3d011682016040523d82523d6000602084013e6103c7565b606091505b5091509150816104195760405162461bcd60e51b815260206004820152601a60248201527f5769746e657450726f78793a206e6f7420636f6d706c69616e740000000000006044820152606401610081565b8080602001905181019061042d91906108b5565b6104795760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f7420617574686f72697a656400000000006044820152606401610081565b856001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b257600080fd5b505afa1580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea919061092a565b836001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052357600080fd5b505afa158015610537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055b919061092a565b146105b45760405162461bcd60e51b8152602060048201526024808201527f5769746e657450726f78793a2070726f786961626c655555494473206d69736d6044820152630c2e8c6d60e31b6064820152608401610081565b50505b6000846001600160a01b0316846040516024016105d49190610943565b60408051601f198184030181529181526020820180516001600160e01b031663439fab9160e01b17905251610609919061090e565b600060405180830381855af49150503d8060008114610644576040519150601f19603f3d011682016040523d82523d6000602084013e610649565b606091505b50509050806106a45760405162461bcd60e51b815260206004820152602160248201527f5769746e657450726f78793a20756e61626c6520746f20696e697469616c697a6044820152606560f81b6064820152608401610081565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0387169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2846001600160a01b0316635479d9406040518163ffffffff1660e01b815260040160206040518083038186803b15801561074357600080fd5b505afa925050508015610773575060408051601f3d908101601f19168201909252610770918101906108b5565b60015b6107bf5760405162461bcd60e51b815260206004820152601a60248201527f5769746e657450726f78793a206e6f7420636f6d706c69616e740000000000006044820152606401610081565b92506107c9915050565b92915050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156107f857600080fd5b82356001600160a01b038116811461080f57600080fd5b9150602083013567ffffffffffffffff8082111561082c57600080fd5b818501915085601f83011261084057600080fd5b813581811115610852576108526107cf565b604051601f8201601f19908116603f0116810190838211818310171561087a5761087a6107cf565b8160405282815288602084870101111561089357600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000602082840312156108c757600080fd5b815180151581146108d757600080fd5b9392505050565b60005b838110156108f95781810151838201526020016108e1565b83811115610908576000848401525b50505050565b600082516109208184602087016108de565b9190910192915050565b60006020828403121561093c57600080fd5b5051919050565b60208152600082518060208401526109628160408501602087016108de565b601f01601f1916919091016040019291505056fea264697066735822122028bcaff67cc6cd0765fa4dca85f54e622ee87115d959015d3b7ee53e99a287ce64736f6c63430008090033

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://28bcaff67cc6cd0765fa4dca85f54e622ee87115d959015d3b7ee53e99a287ce
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.