ETH Price: $2,508.82 (-0.00%)
 
Transaction Hash
Method
Block
From
To
Withdraw From Me...204082642024-07-28 23:13:11314 days ago1722208391IN
LoopringDEX: Beta 1
0 ETH0.001386121
Withdraw Token N...155803632022-09-21 7:39:11991 days ago1663745951IN
LoopringDEX: Beta 1
0 ETH0.00044924.96859184
Withdraw123454802021-05-01 1:58:341499 days ago1619834314IN
LoopringDEX: Beta 1
0 ETH0.0024171330
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00685595115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.007094115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00595677115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.0072021115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00615572115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00635662115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00612133115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00597367115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.01028318115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00730744115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00649669115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00616354115
Drain120107992021-03-10 12:30:141551 days ago1615379414IN
LoopringDEX: Beta 1
0 ETH0.00461909115
Drain120107902021-03-10 12:26:141551 days ago1615379174IN
LoopringDEX: Beta 1
0 ETH0.00596206115
Drain120107902021-03-10 12:26:141551 days ago1615379174IN
LoopringDEX: Beta 1
0 ETH0.00720302115
Drain120107902021-03-10 12:26:141551 days ago1615379174IN
LoopringDEX: Beta 1
0 ETH0.00636996115
Drain120107902021-03-10 12:26:141551 days ago1615379174IN
LoopringDEX: Beta 1
0 ETH0.0070035115
Drain120107902021-03-10 12:26:141551 days ago1615379174IN
LoopringDEX: Beta 1
0 ETH0.00602991115
Drain120107902021-03-10 12:26:141551 days ago1615379174IN
LoopringDEX: Beta 1
0 ETH0.00423188115
Drain120107902021-03-10 12:26:141551 days ago1615379174IN
LoopringDEX: Beta 1
0 ETH0.0061088115
Drain120107902021-03-10 12:26:141551 days ago1615379174IN
LoopringDEX: Beta 1
0 ETH0.01336208115
Drain120107902021-03-10 12:26:141551 days ago1615379174IN
LoopringDEX: Beta 1
0 ETH0.00621115115
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer204082642024-07-28 23:13:11314 days ago1722208391
LoopringDEX: Beta 1
0.064102 ETH
-120107992021-03-10 12:30:141551 days ago1615379414
LoopringDEX: Beta 1
374.64626028 ETH
-117805312021-02-03 2:19:231586 days ago1612318763
LoopringDEX: Beta 1
0.01099999 ETH
-117736332021-02-02 0:44:581587 days ago1612226698
LoopringDEX: Beta 1
0.4899 ETH
-117634692021-01-31 11:11:551589 days ago1612091515
LoopringDEX: Beta 1
0.68 ETH
-117567822021-01-30 10:40:191590 days ago1612003219
LoopringDEX: Beta 1
26.7891 ETH
-117554512021-01-30 5:36:191590 days ago1611984979
LoopringDEX: Beta 1
0.311 ETH
-117529022021-01-29 20:15:171590 days ago1611951317
LoopringDEX: Beta 1
0.0561 ETH
-117518192021-01-29 16:20:491590 days ago1611937249
LoopringDEX: Beta 1
0.45 ETH
-117490112021-01-29 5:49:571591 days ago1611899397
LoopringDEX: Beta 1
0.1065 ETH
-117490112021-01-29 5:49:571591 days ago1611899397
LoopringDEX: Beta 1
5.6615 ETH
-117452832021-01-28 16:08:431591 days ago1611850123
LoopringDEX: Beta 1
0.1123 ETH
-117452832021-01-28 16:08:431591 days ago1611850123
LoopringDEX: Beta 1
0.9999 ETH
-117452832021-01-28 16:08:431591 days ago1611850123
LoopringDEX: Beta 1
1.5662 ETH
-117452832021-01-28 16:08:431591 days ago1611850123
LoopringDEX: Beta 1
0.09 ETH
-117438122021-01-28 10:37:141592 days ago1611830234
LoopringDEX: Beta 1
0.4998 ETH
-117399092021-01-27 20:05:511592 days ago1611777951
LoopringDEX: Beta 1
0.2115 ETH
-117375462021-01-27 11:27:051593 days ago1611746825
LoopringDEX: Beta 1
0.48 ETH
-117375462021-01-27 11:27:051593 days ago1611746825
LoopringDEX: Beta 1
20 ETH
-117359882021-01-27 5:40:441593 days ago1611726044
LoopringDEX: Beta 1
0.0513 ETH
-117359882021-01-27 5:40:441593 days ago1611726044
LoopringDEX: Beta 1
0.05 ETH
-117337802021-01-26 21:25:091593 days ago1611696309
LoopringDEX: Beta 1
0.0203 ETH
-117307942021-01-26 10:39:111594 days ago1611657551
LoopringDEX: Beta 1
0.1213 ETH
-117126882021-01-23 15:41:331596 days ago1611416493
LoopringDEX: Beta 1
0.105 ETH
-117099732021-01-23 5:35:361597 days ago1611380136
LoopringDEX: Beta 1
1.1606 ETH
View All Internal Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xD97D09f3...5a56Bb51B
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
AutoUpgradabilityProxy

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-01-13
*/

/**
 *Submitted for verification at Etherscan.io on 2019-12-05
*/

/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/
pragma solidity ^0.5.11;


/// @title ReentrancyGuard
/// @author Brecht Devos - <[email protected]>
/// @dev Exposes a modifier that guards a function against reentrancy
///      Changing the value of the same storage value multiple times in a transaction
///      is cheap (starting from Istanbul) so there is no need to minimize
///      the number of times the value is changed
contract ReentrancyGuard
{
    //The default value must be 0 in order to work behind a proxy.
    uint private _guardValue;

    // Use this modifier on a function to prevent reentrancy
    modifier nonReentrant()
    {
        // Check if the guard value has its original value
        require(_guardValue == 0, "REENTRANCY");

        // Set the value to something else
        _guardValue = 1;

        // Function body
        _;

        // Set the value back
        _guardValue = 0;
    }
}
/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/


/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/



/// @title Ownable
/// @author Brecht Devos - <[email protected]>
/// @dev The Ownable contract has an owner address, and provides basic
///      authorization control functions, this simplifies the implementation of
///      "user permissions".
contract Ownable
{
    address public owner;

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

    /// @dev The Ownable constructor sets the original `owner` of the contract
    ///      to the sender.
    constructor()
        public
    {
        owner = msg.sender;
    }

    /// @dev Throws if called by any account other than the owner.
    modifier onlyOwner()
    {
        require(msg.sender == owner, "UNAUTHORIZED");
        _;
    }

    /// @dev Allows the current owner to transfer control of the contract to a
    ///      new owner.
    /// @param newOwner The address to transfer ownership to.
    function transferOwnership(
        address newOwner
        )
        public
        onlyOwner
    {
        require(newOwner != address(0), "ZERO_ADDRESS");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    function renounceOwnership()
        public
        onlyOwner
    {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }
}



/// @title Claimable
/// @author Brecht Devos - <[email protected]>
/// @dev Extension for the Ownable contract, where the ownership needs
///      to be claimed. This allows the new owner to accept the transfer.
contract Claimable is Ownable
{
    address public pendingOwner;

    /// @dev Modifier throws if called by any account other than the pendingOwner.
    modifier onlyPendingOwner() {
        require(msg.sender == pendingOwner, "UNAUTHORIZED");
        _;
    }

    /// @dev Allows the current owner to set the pendingOwner address.
    /// @param newOwner The address to transfer ownership to.
    function transferOwnership(
        address newOwner
        )
        public
        onlyOwner
    {
        require(newOwner != address(0) && newOwner != owner, "INVALID_ADDRESS");
        pendingOwner = newOwner;
    }

    /// @dev Allows the pendingOwner address to finalize the transfer.
    function claimOwnership()
        public
        onlyPendingOwner
    {
        emit OwnershipTransferred(owner, pendingOwner);
        owner = pendingOwner;
        pendingOwner = address(0);
    }
}
/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/






/// @title IUniversalRegistry
/// @dev This contract manages all registered ILoopring versions and all Loopring
///      based exchanges.
///
/// @author Daniel Wang  - <[email protected]>
contract IUniversalRegistry is Claimable, ReentrancyGuard
{
    enum ForgeMode {
        AUTO_UPGRADABLE,
        MANUAL_UPGRADABLE,
        PROXIED,
        NATIVE
    }

    /// === Events ===

    event ProtocolRegistered (
        address indexed protocol,
        address indexed implementationManager,
        string          version
    );

    event ProtocolEnabled (
        address indexed protocol
    );

    event ProtocolDisabled (
        address indexed protocol
    );

    event DefaultProtocolChanged (
        address indexed oldDefault,
        address indexed newDefault
    );

    event ExchangeForged (
        address indexed protocol,
        address indexed implementation,
        address indexed exchangeAddress,
        address         owner,
        ForgeMode       forgeMode,
        bool            onchainDataAvailability,
        uint            exchangeId,
        uint            amountLRCBurned
    );

    /// === Data ===

    address   public lrcAddress;
    address[] public exchanges;
    address[] public protocols;

    // IProtocol.version => IProtocol address
    mapping (string => address) public versionMap;

    /// === Functions ===

    /// @dev Registers a new protocol.
    /// @param protocol The address of the new protocol.
    /// @param implementation The new protocol's default implementation.
    /// @return implManager A new implementation manager to manage the protocol's implementations.
    function registerProtocol(
        address protocol,
        address implementation
        )
        external
        returns (address implManager);

    /// @dev Sets the default protocol.
    /// @param protocol The new default protocol.
    function setDefaultProtocol(
        address protocol
        )
        external;

    /// @dev Enables a protocol.
    /// @param protocol The address of the protocol.
    function enableProtocol(
        address protocol
        )
        external;

    /// @dev Disables a protocol.
    /// @param protocol The address of the protocol.
    function disableProtocol(
        address protocol
        )
        external;

    /// @dev Creates a new exchange using a specific protocol with msg.sender
    ///      as owner and operator.
    /// @param forgeMode The forge mode.
    /// @param onchainDataAvailability IF the on-chain DA is on
    /// @param protocol The protocol address, use 0x0 for default.
    /// @param implementation The implementation to use, use 0x0 for default.
    /// @return exchangeAddress The new exchange's address
    /// @return exchangeId The new exchange's ID.
    function forgeExchange(
        ForgeMode forgeMode,
        bool      onchainDataAvailability,
        address   protocol,
        address   implementation
        )
        external
        returns (
            address exchangeAddress,
            uint    exchangeId
        );

    /// @dev Returns information regarding the default protocol.
    /// @return protocol The address of the default protocol.
    /// @return implManager The address of the default protocol's implementation manager.
    /// @return defaultImpl The default protocol's default implementation address.
    /// @return defaultImplVersion The version of the default implementation.
    function defaultProtocol()
        public
        view
        returns (
            address protocol,
            address versionmanager,
            address defaultImpl,
            string  memory protocolVersion,
            string  memory defaultImplVersion
        );

    /// @dev Checks if a protocol has been registered.
    /// @param protocol The address of the protocol.
    /// @return registered True if the prococol is registered.
    function isProtocolRegistered(
        address protocol
        )
        public
        view
        returns (bool registered);

    /// @dev Checks if a protocol has been enabled.
    /// @param protocol The address of the protocol.
    /// @return enabled True if the prococol is registered and enabled.
    function isProtocolEnabled(
        address protocol
        )
        public
        view
        returns (bool enabled);

    /// @dev Checks if the addres is a registered Loopring exchange.
    /// @return registered True if the address is a registered exchange.
    function isExchangeRegistered(
        address exchange
        )
        public
        view
        returns (bool registered);

    /// @dev Checks if the given protocol and implementation are both registered and enabled.
    /// @param protocol The address of the protocol.
    /// @param implementation The address of the implementation.
    /// @return enabled True if both the protocol and the implementation are registered and enabled.
    function isProtocolAndImplementationEnabled(
        address protocol,
        address implementation
        )
        public
        view
        returns (bool enabled);

    /// @dev Returns the protocol associated with an exchange.
    /// @param exchangeAddress The address of the exchange.
    /// @return protocol The protocol address.
    /// @return implementation The protocol's implementation.
    /// @return enabled Whether the protocol is enabled.
    function getExchangeProtocol(
        address exchangeAddress
        )
        public
        view
        returns (
            address protocol,
            address implementation
        );
}/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/






/// @title IImplementationManager
/// @dev This contract manages implementation versions for a specific ILoopring
///      contract. The ILoopring contract can be considered as the "major" version
///      of a Loopring protocol and each IExchange implementation can be considered
///      as a "minor" version. Multiple IExchange contracts can use the same
///      ILoopring contracts.
///
/// @author Daniel Wang  - <[email protected]>
contract IImplementationManager is Claimable, ReentrancyGuard
{
    /// === Events ===

    event DefaultChanged (
        address indexed oldDefault,
        address indexed newDefault
    );

    event Registered (
        address indexed implementation,
        string          version
    );

    event Enabled (
        address indexed implementation
    );

    event Disabled (
        address indexed implementation
    );

    /// === Data ===

    address   public protocol;
    address   public defaultImpl;
    address[] public implementations;

    // version strings => IExchange addresses
    mapping (string => address) public versionMap;

    /// === Functions ===

    /// @dev Registers a new implementation.
    /// @param implementation The implemenation to add.
    function register(
        address implementation
        )
        external;

    /// @dev Sets the default implemenation.
    /// @param implementation The new default implementation.
    function setDefault(
        address implementation
        )
        external;

    /// @dev Enables an implemenation.
    /// @param implementation The implementation to be enabled.
    function enable(
        address implementation
        )
        external;

    /// @dev Disables an implemenation.
    /// @param implementation The implementation to be disabled.
    function disable(
        address implementation
        )
        external;

    /// @dev Returns version information.
    /// @return protocolVersion The protocol's version.
    /// @return defaultImplVersion The default implementation's version.
    function version()
        public
        view
        returns (
            string  memory protocolVersion,
            string  memory defaultImplVersion
        );

    /// @dev Returns the latest implemenation added.
    /// @param implementation The latest implemenation added.
    function latest()
        public
        view
        returns (address implementation);

    /// @dev Returns if an implementation has been registered.
    /// @param registered True if the implementation is registered.
    function isRegistered(
        address implementation
        )
        public
        view
        returns (bool registered);

    /// @dev Returns if an implementation has been registered and enabled.
    /// @param enabled True if the implementation is registered and enabled.
    function isEnabled(
        address implementation
        )
        public
        view
        returns (bool enabled);
}/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/


/*

  Copyright 2017 Loopring Project Ltd (Loopring Foundation).

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/


// This code is taken from https://github.com/OpenZeppelin/openzeppelin-labs
// with minor modifications.




/**
 * @title Proxy
 * @dev Gives the possibility to delegate any call to a foreign implementation.
 */
contract Proxy {
  /**
  * @dev Tells the address of the implementation where every call will be delegated.
  * @return address of the implementation to which it will be delegated
  */
  function implementation() public view returns (address);

  /**
  * @dev Fallback function allowing to perform a delegatecall to the given implementation.
  * This function will return whatever the implementation call returns
  */
  function () payable external {
    address _impl = implementation();
    require(_impl != address(0));

    assembly {
      let ptr := mload(0x40)
      calldatacopy(ptr, 0, calldatasize)
      let result := delegatecall(gas, _impl, ptr, calldatasize, 0, 0)
      let size := returndatasize
      returndatacopy(ptr, 0, size)

      switch result
      case 0 { revert(ptr, size) }
      default { return(ptr, size) }
    }
  }
}





/// @title IExchangeProxy
/// @author Daniel Wang  - <[email protected]>
contract IExchangeProxy is Proxy
{
    bytes32 private constant registryPosition = keccak256(
        "org.loopring.protocol.v3.registry"
    );

    constructor(address _registry)
        public
    {
        setRegistry(_registry);
    }

    /// @dev Returns the exchange's registry address.
    function registry()
        public
        view
        returns (address registryAddress)
    {
        bytes32 position = registryPosition;
        assembly { registryAddress := sload(position) }
    }

    /// @dev Returns the exchange's protocol address.
    function protocol()
        public
        view
        returns (address protocolAddress)
    {
        IUniversalRegistry r = IUniversalRegistry(registry());
        (protocolAddress, ) = r.getExchangeProtocol(address(this));
    }

    function setRegistry(address _registry)
        private
    {
        require(_registry != address(0), "ZERO_ADDRESS");
        bytes32 position = registryPosition;
        assembly { sstore(position, _registry) }
    }
}




/// @title AutoUpgradabilityProxy
/// @dev This proxy is designed to support automatic upgradability.
/// @author Daniel Wang  - <[email protected]>
contract AutoUpgradabilityProxy is IExchangeProxy
{
    constructor(address _registry) public IExchangeProxy(_registry) {}

    function implementation()
        public
        view
        returns (address)
    {
        IUniversalRegistry r = IUniversalRegistry(registry());
        (, address managerAddr) = r.getExchangeProtocol(address(this));
        return IImplementationManager(managerAddr).defaultImpl();
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"registry","outputs":[{"internalType":"address","name":"registryAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"protocol","outputs":[{"internalType":"address","name":"protocolAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

0x608060405234801561001057600080fd5b506040516103db3803806103db8339818101604052602081101561003357600080fd5b505180610048816001600160e01b0361004f16565b50506100e6565b6001600160a01b0381166100c457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f414444524553530000000000000000000000000000000000000000604482015290519081900360640190fd5b600060405180806103ba60219139604051908190036021019020929092555050565b6102c5806100f56000396000f3fe6080604052600436106100345760003560e01c80635c60da1b146100785780637b103999146100a95780638ce74426146100be575b600061003e6100d3565b90506001600160a01b03811661005357600080fd5b60405136600082376000803683855af43d806000843e818015610074578184f35b8184fd5b34801561008457600080fd5b5061008d6100d3565b604080516001600160a01b039092168252519081900360200190f35b3480156100b557600080fd5b5061008d6101c8565b3480156100ca57600080fd5b5061008d6101eb565b6000806100de6101c8565b60408051633a731b2f60e11b815230600482015281519293506000926001600160a01b038516926374e6365e9260248082019391829003018186803b15801561012657600080fd5b505afa15801561013a573d6000803e3d6000fd5b505050506040513d604081101561015057600080fd5b506020908101516040805163631ffbf360e01b815290519193506001600160a01b0384169263631ffbf392600480840193829003018186803b15801561019557600080fd5b505afa1580156101a9573d6000803e3d6000fd5b505050506040513d60208110156101bf57600080fd5b50519250505090565b600080604051808061027060219139604051908190036021019020549392505050565b6000806101f66101c8565b60408051633a731b2f60e11b815230600482015281519293506001600160a01b038416926374e6365e92602480840193919291829003018186803b15801561023d57600080fd5b505afa158015610251573d6000803e3d6000fd5b505050506040513d604081101561026757600080fd5b50519291505056fe6f72672e6c6f6f7072696e672e70726f746f636f6c2e76332e7265676973747279a265627a7a723158206b637acb6d50c12eb63348b284a4be3e4b2a319c97c1b962ebb15a959e9f327e64736f6c634300050b00326f72672e6c6f6f7072696e672e70726f746f636f6c2e76332e726567697374727900000000000000000000000036f568ef555df25be4b6e15d16994f3a8374214e

Deployed Bytecode

0x6080604052600436106100345760003560e01c80635c60da1b146100785780637b103999146100a95780638ce74426146100be575b600061003e6100d3565b90506001600160a01b03811661005357600080fd5b60405136600082376000803683855af43d806000843e818015610074578184f35b8184fd5b34801561008457600080fd5b5061008d6100d3565b604080516001600160a01b039092168252519081900360200190f35b3480156100b557600080fd5b5061008d6101c8565b3480156100ca57600080fd5b5061008d6101eb565b6000806100de6101c8565b60408051633a731b2f60e11b815230600482015281519293506000926001600160a01b038516926374e6365e9260248082019391829003018186803b15801561012657600080fd5b505afa15801561013a573d6000803e3d6000fd5b505050506040513d604081101561015057600080fd5b506020908101516040805163631ffbf360e01b815290519193506001600160a01b0384169263631ffbf392600480840193829003018186803b15801561019557600080fd5b505afa1580156101a9573d6000803e3d6000fd5b505050506040513d60208110156101bf57600080fd5b50519250505090565b600080604051808061027060219139604051908190036021019020549392505050565b6000806101f66101c8565b60408051633a731b2f60e11b815230600482015281519293506001600160a01b038416926374e6365e92602480840193919291829003018186803b15801561023d57600080fd5b505afa158015610251573d6000803e3d6000fd5b505050506040513d604081101561026757600080fd5b50519291505056fe6f72672e6c6f6f7072696e672e70726f746f636f6c2e76332e7265676973747279a265627a7a723158206b637acb6d50c12eb63348b284a4be3e4b2a319c97c1b962ebb15a959e9f327e64736f6c634300050b0032

Deployed Bytecode Sourcemap

19180:435:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;17458:13;17474:16;:14;:16::i;:::-;17458:32;-1:-1:-1;;;;;;17505:19:0;;17497:28;;;;;;17569:4;17563:11;17603:12;17600:1;17595:3;17582:34;17685:1;17682;17668:12;17663:3;17656:5;17651:3;17638:49;17707:14;17752:4;17749:1;17744:3;17729:28;17774:6;17788:28;;;;17846:4;17841:3;17834:17;17788:28;17809:4;17804:3;17797:17;19312:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19312:300:0;;;:::i;:::-;;;;-1:-1:-1;;;;;19312:300:0;;;;;;;;;;;;;;18269:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18269:209:0;;;:::i;18541:239::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18541:239:0;;;:::i;19312:300::-;19386:7;19411:20;19453:10;:8;:10::i;:::-;19501:36;;;-1:-1:-1;;;19501:36:0;;19531:4;19501:36;;;;;;19411:53;;-1:-1:-1;19478:19:0;;-1:-1:-1;;;;;19501:21:0;;;;;:36;;;;;;;;;;;:21;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;19501:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19501:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19501:36:0;;;;;;19555:49;;-1:-1:-1;;;19555:49:0;;;;19501:36;;-1:-1:-1;;;;;;19555:47:0;;;;;:49;;;;;;;;;;:47;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;19555:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19555:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19555:49:0;;-1:-1:-1;;;19312:300:0;:::o;18269:209::-;18337:23;18378:16;18042:62;;;;;;;;;;;;;;;;;;18454:15;;18433:38;-1:-1:-1;;;18433:38:0:o;18541:239::-;18609:23;18650:20;18692:10;:8;:10::i;:::-;18736:36;;;-1:-1:-1;;;18736:36:0;;18766:4;18736:36;;;;;;18650:53;;-1:-1:-1;;;;;;18736:21:0;;;;;:36;;;;;;;;;;;;;:21;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;18736:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18736:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18736:36:0;;18541:239;-1:-1:-1;;18541:239:0:o

Swarm Source

bzzr://6b637acb6d50c12eb63348b284a4be3e4b2a319c97c1b962ebb15a959e9f327e

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.