MOVR Price: $11.01 (+3.33%)
Gas: 2.5 GWei

Contract

0xd653fbd7c736838289262F0F41A458f35393C88a

Overview

MOVR Balance

Moonriver Chain LogoMoonriver Chain LogoMoonriver Chain Logo0 MOVR

MOVR Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Upgrade To68039072024-05-21 12:22:4864 days ago1716294168IN
0xd653fbd7...35393C88a
0 MOVR0.000211061.25
Upgrade To68038662024-05-21 12:14:1864 days ago1716293658IN
0xd653fbd7...35393C88a
0 MOVR0.000211721.25
Transfer Ownersh...68038562024-05-21 12:12:1264 days ago1716293532IN
0xd653fbd7...35393C88a
0 MOVR0.000109031.25
Report Result68036912024-05-21 11:38:2464 days ago1716291504IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68036582024-05-21 11:31:4864 days ago1716291108IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68033742024-05-21 10:33:1264 days ago1716287592IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68031022024-05-21 9:36:1264 days ago1716284172IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68028172024-05-21 8:36:5464 days ago1716280614IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68027302024-05-21 8:18:1264 days ago1716279492IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68023882024-05-21 7:08:3064 days ago1716275310IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68021902024-05-21 6:27:5564 days ago1716272875IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68016672024-05-21 4:40:3664 days ago1716266436IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68013582024-05-21 3:37:3664 days ago1716262656IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68010042024-05-21 2:24:0664 days ago1716258246IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68009902024-05-21 2:21:1264 days ago1716258072IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68007302024-05-21 1:27:1264 days ago1716254832IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68006072024-05-21 1:01:4264 days ago1716253302IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68002412024-05-20 23:46:3664 days ago1716248796IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result68001472024-05-20 23:26:2464 days ago1716247584IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result67996212024-05-20 21:38:2464 days ago1716241104IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result67992592024-05-20 20:24:1764 days ago1716236657IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result67992322024-05-20 20:18:5464 days ago1716236334IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result67991432024-05-20 20:00:5464 days ago1716235254IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result67989802024-05-20 19:27:0664 days ago1716233226IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
Report Result67981992024-05-20 16:46:3664 days ago1716223596IN
0xd653fbd7...35393C88a
0 MOVR0.000212281.25
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
68456762024-05-27 12:41:4258 days ago1716813702
0xd653fbd7...35393C88a
0.00016193 MOVR
68453992024-05-27 11:44:4258 days ago1716810282
0xd653fbd7...35393C88a
0.00016193 MOVR
68451222024-05-27 10:47:3658 days ago1716806856
0xd653fbd7...35393C88a
0.00016193 MOVR
68448422024-05-27 9:49:4858 days ago1716803388
0xd653fbd7...35393C88a
0.00016193 MOVR
68445592024-05-27 8:51:2458 days ago1716799884
0xd653fbd7...35393C88a
0.00016193 MOVR
68442832024-05-27 7:54:1858 days ago1716796458
0xd653fbd7...35393C88a
0.00016193 MOVR
68438972024-05-27 6:35:2458 days ago1716791724
0xd653fbd7...35393C88a
0.00016193 MOVR
68436142024-05-27 5:36:5458 days ago1716788214
0xd653fbd7...35393C88a
0.00016193 MOVR
68435722024-05-27 5:27:1258 days ago1716787632
0xd653fbd7...35393C88a
0.00016193 MOVR
68433192024-05-27 4:35:2458 days ago1716784524
0xd653fbd7...35393C88a
0.00016193 MOVR
68430282024-05-27 3:35:1858 days ago1716780918
0xd653fbd7...35393C88a
0.00016193 MOVR
68426332024-05-27 2:14:1858 days ago1716776058
0xd653fbd7...35393C88a
0.00016193 MOVR
68416302024-05-26 22:46:3058 days ago1716763590
0xd653fbd7...35393C88a
0.00016193 MOVR
68415692024-05-26 22:33:4258 days ago1716762822
0xd653fbd7...35393C88a
0.00016193 MOVR
68412802024-05-26 21:33:4258 days ago1716759222
0xd653fbd7...35393C88a
0.00016193 MOVR
68407182024-05-26 19:38:0658 days ago1716752286
0xd653fbd7...35393C88a
0.00016193 MOVR
68404412024-05-26 18:40:5458 days ago1716748854
0xd653fbd7...35393C88a
0.00016193 MOVR
68401502024-05-26 17:41:0058 days ago1716745260
0xd653fbd7...35393C88a
0.00016193 MOVR
68398752024-05-26 16:43:0658 days ago1716741786
0xd653fbd7...35393C88a
0.00016193 MOVR
68398452024-05-26 16:37:0058 days ago1716741420
0xd653fbd7...35393C88a
0.00016193 MOVR
68398072024-05-26 16:28:4858 days ago1716740928
0xd653fbd7...35393C88a
0.00016193 MOVR
68395272024-05-26 15:31:0659 days ago1716737466
0xd653fbd7...35393C88a
0.00016193 MOVR
68391992024-05-26 14:21:1859 days ago1716733278
0xd653fbd7...35393C88a
0.00016193 MOVR
68386112024-05-26 12:16:4259 days ago1716725802
0xd653fbd7...35393C88a
0.00016193 MOVR
68382552024-05-26 11:01:3659 days ago1716721296
0xd653fbd7...35393C88a
0.00016193 MOVR
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WitnetProxy

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at moonriver.moonscan.io on 2022-04-22
*/

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

608060405234801561001057600080fd5b5061096f806100206000396000f3fe60806040526004361061002d5760003560e01c80635c60da1b146100bb5780636fbc15e9146100ed5761008a565b3661008a5760405162461bcd60e51b815260206004820152602260248201527f5769746e657450726f78793a206e6f207472616e736665727320616363657074604482015261195960f21b60648201526084015b60405180910390fd5b600061009461011d565b905060405136600082376000803683855af43d806000843e8180156100b7578184f35b8184fd5b3480156100c757600080fd5b506100d061011d565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f957600080fd5b5061010d6101083660046107a8565b61014b565b60405190151581526020016100e4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b60006001600160a01b0383166101a35760405162461bcd60e51b815260206004820181905260248201527f5769746e657450726f78793a206e756c6c20696d706c656d656e746174696f6e6044820152606401610081565b60006101ad61011d565b90506001600160a01b0381161561058957806001600160a01b0316846001600160a01b03160361021f5760405162461bcd60e51b815260206004820152601f60248201527f5769746e657450726f78793a206e6f7468696e6720746f2075706772616465006044820152606401610081565b806001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610279575060408051601f3d908101601f1916820190925261027691810190610878565b60015b6102d85760405162461bcd60e51b815260206004820152602a60248201527f5769746e657450726f78793a20756e61626c6520746f20636865636b207570676044820152697261646162696c69747960b01b6064820152608401610081565b806103255760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f742075706772616461626c6500000000006044820152606401610081565b5060405133602482015260009081906001600160a01b0384169060440160408051601f198184030181529181526020820180516001600160e01b03166335ac4b0560e11b1790525161037791906108d1565b600060405180830381855af49150503d80600081146103b2576040519150601f19603f3d011682016040523d82523d6000602084013e6103b7565b606091505b5091509150816104095760405162461bcd60e51b815260206004820152601a60248201527f5769746e657450726f78793a206e6f7420636f6d706c69616e740000000000006044820152606401610081565b8080602001905181019061041d9190610878565b6104695760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f7420617574686f72697a656400000000006044820152606401610081565b856001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cb91906108ed565b836001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d91906108ed565b146105865760405162461bcd60e51b8152602060048201526024808201527f5769746e657450726f78793a2070726f786961626c655555494473206d69736d6044820152630c2e8c6d60e31b6064820152608401610081565b50505b6000846001600160a01b0316846040516024016105a69190610906565b60408051601f198184030181529181526020820180516001600160e01b031663439fab9160e01b179052516105db91906108d1565b600060405180830381855af49150503d8060008114610616576040519150601f19603f3d011682016040523d82523d6000602084013e61061b565b606091505b50509050806106765760405162461bcd60e51b815260206004820152602160248201527f5769746e657450726f78793a20756e61626c6520746f20696e697469616c697a6044820152606560f81b6064820152608401610081565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0387169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2846001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610736575060408051601f3d908101601f1916820190925261073391810190610878565b60015b6107825760405162461bcd60e51b815260206004820152601a60248201527f5769746e657450726f78793a206e6f7420636f6d706c69616e740000000000006044820152606401610081565b925061078c915050565b92915050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156107bb57600080fd5b82356001600160a01b03811681146107d257600080fd5b9150602083013567ffffffffffffffff808211156107ef57600080fd5b818501915085601f83011261080357600080fd5b81358181111561081557610815610792565b604051601f8201601f19908116603f0116810190838211818310171561083d5761083d610792565b8160405282815288602084870101111561085657600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561088a57600080fd5b8151801515811461089a57600080fd5b9392505050565b60005b838110156108bc5781810151838201526020016108a4565b838111156108cb576000848401525b50505050565b600082516108e38184602087016108a1565b9190910192915050565b6000602082840312156108ff57600080fd5b5051919050565b60208152600082518060208401526109258160408501602087016108a1565b601f01601f1916919091016040019291505056fea2646970667358221220b619e4409b993dc8e9a7402d8633b5aa1ac562d85786959d0b4e04e75a98020164736f6c634300080d0033

Deployed Bytecode

0x60806040526004361061002d5760003560e01c80635c60da1b146100bb5780636fbc15e9146100ed5761008a565b3661008a5760405162461bcd60e51b815260206004820152602260248201527f5769746e657450726f78793a206e6f207472616e736665727320616363657074604482015261195960f21b60648201526084015b60405180910390fd5b600061009461011d565b905060405136600082376000803683855af43d806000843e8180156100b7578184f35b8184fd5b3480156100c757600080fd5b506100d061011d565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f957600080fd5b5061010d6101083660046107a8565b61014b565b60405190151581526020016100e4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b60006001600160a01b0383166101a35760405162461bcd60e51b815260206004820181905260248201527f5769746e657450726f78793a206e756c6c20696d706c656d656e746174696f6e6044820152606401610081565b60006101ad61011d565b90506001600160a01b0381161561058957806001600160a01b0316846001600160a01b03160361021f5760405162461bcd60e51b815260206004820152601f60248201527f5769746e657450726f78793a206e6f7468696e6720746f2075706772616465006044820152606401610081565b806001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610279575060408051601f3d908101601f1916820190925261027691810190610878565b60015b6102d85760405162461bcd60e51b815260206004820152602a60248201527f5769746e657450726f78793a20756e61626c6520746f20636865636b207570676044820152697261646162696c69747960b01b6064820152608401610081565b806103255760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f742075706772616461626c6500000000006044820152606401610081565b5060405133602482015260009081906001600160a01b0384169060440160408051601f198184030181529181526020820180516001600160e01b03166335ac4b0560e11b1790525161037791906108d1565b600060405180830381855af49150503d80600081146103b2576040519150601f19603f3d011682016040523d82523d6000602084013e6103b7565b606091505b5091509150816104095760405162461bcd60e51b815260206004820152601a60248201527f5769746e657450726f78793a206e6f7420636f6d706c69616e740000000000006044820152606401610081565b8080602001905181019061041d9190610878565b6104695760405162461bcd60e51b815260206004820152601b60248201527f5769746e657450726f78793a206e6f7420617574686f72697a656400000000006044820152606401610081565b856001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cb91906108ed565b836001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d91906108ed565b146105865760405162461bcd60e51b8152602060048201526024808201527f5769746e657450726f78793a2070726f786961626c655555494473206d69736d6044820152630c2e8c6d60e31b6064820152608401610081565b50505b6000846001600160a01b0316846040516024016105a69190610906565b60408051601f198184030181529181526020820180516001600160e01b031663439fab9160e01b179052516105db91906108d1565b600060405180830381855af49150503d8060008114610616576040519150601f19603f3d011682016040523d82523d6000602084013e61061b565b606091505b50509050806106765760405162461bcd60e51b815260206004820152602160248201527f5769746e657450726f78793a20756e61626c6520746f20696e697469616c697a6044820152606560f81b6064820152608401610081565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0387169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2846001600160a01b0316635479d9406040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610736575060408051601f3d908101601f1916820190925261073391810190610878565b60015b6107825760405162461bcd60e51b815260206004820152601a60248201527f5769746e657450726f78793a206e6f7420636f6d706c69616e740000000000006044820152606401610081565b925061078c915050565b92915050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156107bb57600080fd5b82356001600160a01b03811681146107d257600080fd5b9150602083013567ffffffffffffffff808211156107ef57600080fd5b818501915085601f83011261080357600080fd5b81358181111561081557610815610792565b604051601f8201601f19908116603f0116810190838211818310171561083d5761083d610792565b8160405282815288602084870101111561085657600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561088a57600080fd5b8151801515811461089a57600080fd5b9392505050565b60005b838110156108bc5781810151838201526020016108a4565b838111156108cb576000848401525b50505050565b600082516108e38184602087016108a1565b9190910192915050565b6000602082840312156108ff57600080fd5b5051919050565b60208152600082518060208401526109258160408501602087016108a1565b601f01601f1916919091016040019291505056fea2646970667358221220b619e4409b993dc8e9a7402d8633b5aa1ac562d85786959d0b4e04e75a98020164736f6c634300080d0033

Deployed Bytecode Sourcemap

3251:4977:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3708:44;;-1:-1:-1;;;3708:44:0;;216:2:1;3708: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;;3708:44:0;;;;;;;;3251:4977;3924:23;3950:16;:14;:16::i;:::-;3924:42;;4316:4;4310:11;4356:14;4353:1;4348:3;4335:36;4460:1;4457;4441:14;4436:3;4419:15;4412:5;4399:63;4488:16;4541:4;4538:1;4533:3;4518:28;4567:6;4591:119;;;;4853:4;4848:3;4841:17;4591:119;4685:4;4680:3;4673:17;4961:109;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;581:32:1;;;563:51;;551:2;536:18;4961:109:0;;;;;;;;5364:2448;;;;;;;;;;-1:-1:-1;5364:2448:0;;;;;:::i;:::-;;:::i;:::-;;;2022:14:1;;2015:22;1997:41;;1985:2;1970:18;5364:2448:0;1857:187:1;4961:109:0;8139:66;5035:27;-1:-1:-1;;;;;5035:27:0;;4961:109::o;5364:2448::-;5460:4;-1:-1:-1;;;;;5537:32:0;;5529:77;;;;-1:-1:-1;;;5529:77:0;;2251:2:1;5529:77:0;;;2233:21:1;;;2270:18;;;2263:30;2329:34;2309:18;;;2302:62;2381:18;;5529:77:0;2049:356:1;5529:77:0;5619:26;5648:16;:14;:16::i;:::-;5619:45;-1:-1:-1;;;;;;5679:32:0;;;5675:1282;;5831:18;-1:-1:-1;;;;;5809:40:0;:18;-1:-1:-1;;;;;5809:40:0;;5801:84;;;;-1:-1:-1;;;5801:84:0;;2612:2:1;5801:84:0;;;2594:21:1;2651:2;2631:18;;;2624:30;2690:33;2670:18;;;2663:61;2741:18;;5801:84:0;2410:355:1;5801:84:0;6000:18;-1:-1:-1;;;;;5989:43:0;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5989:45:0;;;;;;;;-1:-1:-1;;5989:45:0;;;;;;;;;;;;:::i;:::-;;;5985:261;;6178:52;;-1:-1:-1;;;6178:52:0;;3254:2:1;6178: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;;6178:52:0;3052:406:1;5985:261:0;6091:13;6083:53;;;;-1:-1:-1;;;6083:53:0;;3665:2:1;6083:53:0;;;3647:21:1;3704:2;3684:18;;;3677:30;3743:29;3723:18;;;3716:57;3790:18;;6083:53:0;3463:351:1;6083:53:0;-1:-1:-1;6450:125:0;;6546:10;6450:125;;;563:51:1;6359:15:0;;;;-1:-1:-1;;;;;6400:31:0;;;536:18:1;;6450:125:0;;;-1:-1:-1;;6450:125:0;;;;;;;;;;;;;;-1:-1:-1;;;;;6450:125:0;-1:-1:-1;;;6450:125:0;;;6400:190;;;6450:125;6400:190;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6358:232;;;;6613:10;6605:49;;;;-1:-1:-1;;;6605:49:0;;4563:2:1;6605:49:0;;;4545:21:1;4602:2;4582:18;;;4575:30;4641:28;4621:18;;;4614:56;4687:18;;6605:49:0;4361:350:1;6605:49:0;6688:7;6677:27;;;;;;;;;;;;:::i;:::-;6669:67;;;;-1:-1:-1;;;6669:67:0;;4918:2:1;6669:67:0;;;4900:21:1;4957:2;4937:18;;;4930:30;4996:29;4976:18;;;4969:57;5043:18;;6669:67:0;4716:351:1;6669:67:0;6838:18;-1:-1:-1;;;;;6827:44:0;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6788:18;-1:-1:-1;;;;;6777:44:0;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:96;6751:194;;;;-1:-1:-1;;;6751:194:0;;5463:2:1;6751: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;;6751:194:0;5261:400:1;6751:194:0;5713:1244;;5675:1282;7042:20;7067:18;-1:-1:-1;;;;;7067:31:0;7193:9;7113:104;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7113:104:0;;;;;;;;;;;;;;-1:-1:-1;;;;;7113:104:0;-1:-1:-1;;;7113:104:0;;;7067:161;;;7113:104;7067:161;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7041:187;;;7247:15;7239:61;;;;-1:-1:-1;;;7239:61:0;;6254:2:1;7239: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;;7239:61:0;6052:397:1;7239:61:0;8139:66;7395:48;;-1:-1:-1;;;;;;7395:48:0;-1:-1:-1;;;;;7395:48:0;;;;;;;;7459:28;;;;-1:-1:-1;;7459:28:0;7614:18;-1:-1:-1;;;;;7603:43:0;;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7603:45:0;;;;;;;;-1:-1:-1;;7603:45:0;;;;;;;;;;;;:::i;:::-;;;7599:206;;7756:37;;-1:-1:-1;;;7756:37:0;;4563:2:1;7756:37:0;;;4545:21:1;4602:2;4582:18;;;4575:30;4641:28;4621:18;;;4614:56;4687:18;;7756:37:0;4361:350:1;7599:206:0;7700:13;-1:-1:-1;7693:20:0;;-1:-1:-1;;7693:20:0;5364: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://b619e4409b993dc8e9a7402d8633b5aa1ac562d85786959d0b4e04e75a980201

Block Transaction Gas Used Reward
view all blocks collator

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

Validator Index Block Amount
View All Withdrawals

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

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