ETH Price: $3,249.06 (-0.33%)
Gas: 2 Gwei

Contract

0x407B4128E9eCaD8769B2332312a9F655cB9F5F3A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60a06040115961152021-01-05 18:18:041299 days ago1609870684IN
 Create: LiquidityProviderSandbox
0 ETH0.041956290

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LiquidityProviderSandbox

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
istanbul EvmVersion, Apache-2.0 license
File 1 of 6 : LiquidityProviderSandbox.sol
/*
  Copyright 2020 ZeroEx Intl.
  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.6.5;
pragma experimental ABIEncoderV2;

import "@0x/contracts-utils/contracts/src/v06/errors/LibRichErrorsV06.sol";
import "@0x/contracts-utils/contracts/src/v06/errors/LibOwnableRichErrorsV06.sol";
import "../vendor/ILiquidityProvider.sol";
import "../vendor/v3/IERC20Bridge.sol";
import "./ILiquidityProviderSandbox.sol";


/// @dev A permissionless contract through which the ZeroEx contract can
///      safely trigger a trade on an external `ILiquidityProvider` contract.
contract LiquidityProviderSandbox is
    ILiquidityProviderSandbox
{
    using LibRichErrorsV06 for bytes;

    /// @dev Store the owner as an immutable.
    address public immutable owner;

    constructor(address owner_)
        public
    {
        owner = owner_;
    }

    /// @dev Allows only the (immutable) owner to call a function.
    modifier onlyOwner() virtual {
        if (msg.sender != owner) {
            LibOwnableRichErrorsV06.OnlyOwnerError(
                msg.sender,
                owner
            ).rrevert();
        }
        _;
    }

    /// @dev Calls `sellTokenForToken` on the given `provider` contract to
    ///      trigger a trade.
    /// @param provider The address of the on-chain liquidity provider.
    /// @param inputToken The token being sold.
    /// @param outputToken The token being bought.
    /// @param recipient The recipient of the bought tokens.
    /// @param minBuyAmount The minimum acceptable amount of `outputToken` to buy.
    /// @param auxiliaryData Auxiliary data supplied to the `provider` contract.
    function executeSellTokenForToken(
        address provider,
        address inputToken,
        address outputToken,
        address recipient,
        uint256 minBuyAmount,
        bytes calldata auxiliaryData
    )
        external
        onlyOwner
        override
    {
        ILiquidityProvider(provider).sellTokenForToken(
            inputToken,
            outputToken,
            recipient,
            minBuyAmount,
            auxiliaryData
        );
    }

    /// @dev Calls `sellEthForToken` on the given `provider` contract to
    ///      trigger a trade.
    /// @param provider The address of the on-chain liquidity provider.
    /// @param outputToken The token being bought.
    /// @param recipient The recipient of the bought tokens.
    /// @param minBuyAmount The minimum acceptable amount of `outputToken` to buy.
    /// @param auxiliaryData Auxiliary data supplied to the `provider` contract.
    function executeSellEthForToken(
        address provider,
        address outputToken,
        address recipient,
        uint256 minBuyAmount,
        bytes calldata auxiliaryData
    )
        external
        onlyOwner
        override
    {
        ILiquidityProvider(provider).sellEthForToken(
            outputToken,
            recipient,
            minBuyAmount,
            auxiliaryData
        );
    }

    /// @dev Calls `sellTokenForEth` on the given `provider` contract to
    ///      trigger a trade.
    /// @param provider The address of the on-chain liquidity provider.
    /// @param inputToken The token being sold.
    /// @param recipient The recipient of the bought tokens.
    /// @param minBuyAmount The minimum acceptable amount of ETH to buy.
    /// @param auxiliaryData Auxiliary data supplied to the `provider` contract.
    function executeSellTokenForEth(
        address provider,
        address inputToken,
        address recipient,
        uint256 minBuyAmount,
        bytes calldata auxiliaryData
    )
        external
        onlyOwner
        override
    {
        ILiquidityProvider(provider).sellTokenForEth(
            inputToken,
            payable(recipient),
            minBuyAmount,
            auxiliaryData
        );
    }
}

File 2 of 6 : LibRichErrorsV06.sol
/*

  Copyright 2020 ZeroEx Intl.

  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.6.5;


library LibRichErrorsV06 {

    // bytes4(keccak256("Error(string)"))
    bytes4 internal constant STANDARD_ERROR_SELECTOR = 0x08c379a0;

    // solhint-disable func-name-mixedcase
    /// @dev ABI encode a standard, string revert error payload.
    ///      This is the same payload that would be included by a `revert(string)`
    ///      solidity statement. It has the function signature `Error(string)`.
    /// @param message The error string.
    /// @return The ABI encoded error.
    function StandardError(string memory message)
        internal
        pure
        returns (bytes memory)
    {
        return abi.encodeWithSelector(
            STANDARD_ERROR_SELECTOR,
            bytes(message)
        );
    }
    // solhint-enable func-name-mixedcase

    /// @dev Reverts an encoded rich revert reason `errorData`.
    /// @param errorData ABI encoded error data.
    function rrevert(bytes memory errorData)
        internal
        pure
    {
        assembly {
            revert(add(errorData, 0x20), mload(errorData))
        }
    }
}

File 3 of 6 : LibOwnableRichErrorsV06.sol
/*

  Copyright 2020 ZeroEx Intl.

  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.6.5;


library LibOwnableRichErrorsV06 {

    // bytes4(keccak256("OnlyOwnerError(address,address)"))
    bytes4 internal constant ONLY_OWNER_ERROR_SELECTOR =
        0x1de45ad1;

    // bytes4(keccak256("TransferOwnerToZeroError()"))
    bytes internal constant TRANSFER_OWNER_TO_ZERO_ERROR_BYTES =
        hex"e69edc3e";

    // solhint-disable func-name-mixedcase
    function OnlyOwnerError(
        address sender,
        address owner
    )
        internal
        pure
        returns (bytes memory)
    {
        return abi.encodeWithSelector(
            ONLY_OWNER_ERROR_SELECTOR,
            sender,
            owner
        );
    }

    function TransferOwnerToZeroError()
        internal
        pure
        returns (bytes memory)
    {
        return TRANSFER_OWNER_TO_ZERO_ERROR_BYTES;
    }
}

File 4 of 6 : ILiquidityProvider.sol
/*

  Copyright 2020 ZeroEx Intl.

  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.6.5;

interface ILiquidityProvider {

    /// @dev Trades `inputToken` for `outputToken`. The amount of `inputToken`
    ///      to sell must be transferred to the contract prior to calling this
    ///      function to trigger the trade.
    /// @param inputToken The token being sold.
    /// @param outputToken The token being bought.
    /// @param recipient The recipient of the bought tokens.
    /// @param minBuyAmount The minimum acceptable amount of `outputToken` to buy.
    /// @param auxiliaryData Arbitrary auxiliary data supplied to the contract.
    /// @return boughtAmount The amount of `outputToken` bought.
    function sellTokenForToken(
        address inputToken,
        address outputToken,
        address recipient,
        uint256 minBuyAmount,
        bytes calldata auxiliaryData
    )
        external
        returns (uint256 boughtAmount);

    /// @dev Trades ETH for token. ETH must either be attached to this function
    ///      call or sent to the contract prior to calling this function to
    ///      trigger the trade.
    /// @param outputToken The token being bought.
    /// @param recipient The recipient of the bought tokens.
    /// @param minBuyAmount The minimum acceptable amount of `outputToken` to buy.
    /// @param auxiliaryData Arbitrary auxiliary data supplied to the contract.
    /// @return boughtAmount The amount of `outputToken` bought.
    function sellEthForToken(
        address outputToken,
        address recipient,
        uint256 minBuyAmount,
        bytes calldata auxiliaryData
    )
        external
        payable
        returns (uint256 boughtAmount);

    /// @dev Trades token for ETH. The token must be sent to the contract prior
    ///      to calling this function to trigger the trade.
    /// @param inputToken The token being sold.
    /// @param recipient The recipient of the bought tokens.
    /// @param minBuyAmount The minimum acceptable amount of ETH to buy.
    /// @param auxiliaryData Arbitrary auxiliary data supplied to the contract.
    /// @return boughtAmount The amount of ETH bought.
    function sellTokenForEth(
        address inputToken,
        address payable recipient,
        uint256 minBuyAmount,
        bytes calldata auxiliaryData
    )
        external
        returns (uint256 boughtAmount);

    /// @dev Quotes the amount of `outputToken` that would be obtained by
    ///      selling `sellAmount` of `inputToken`.
    /// @param inputToken Address of the taker token (what to sell). Use
    ///        the wETH address if selling ETH.
    /// @param outputToken Address of the maker token (what to buy). Use
    ///        the wETH address if buying ETH.
    /// @param sellAmount Amount of `inputToken` to sell.
    /// @return outputTokenAmount Amount of `outputToken` that would be obtained.
    function getSellQuote(
        address inputToken,
        address outputToken,
        uint256 sellAmount
    )
        external
        view
        returns (uint256 outputTokenAmount);
}

File 5 of 6 : IERC20Bridge.sol
/*

  Copyright 2020 ZeroEx Intl.

  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.6.5;

interface IERC20Bridge {

    /// @dev Emitted when a trade occurs.
    /// @param inputToken The token the bridge is converting from.
    /// @param outputToken The token the bridge is converting to.
    /// @param inputTokenAmount Amount of input token.
    /// @param outputTokenAmount Amount of output token.
    /// @param from The `from` address in `bridgeTransferFrom()`
    /// @param to The `to` address in `bridgeTransferFrom()`
    event ERC20BridgeTransfer(
        address inputToken,
        address outputToken,
        uint256 inputTokenAmount,
        uint256 outputTokenAmount,
        address from,
        address to
    );

    /// @dev Transfers `amount` of the ERC20 `tokenAddress` from `from` to `to`.
    /// @param tokenAddress The address of the ERC20 token to transfer.
    /// @param from Address to transfer asset from.
    /// @param to Address to transfer asset to.
    /// @param amount Amount of asset to transfer.
    /// @param bridgeData Arbitrary asset data needed by the bridge contract.
    /// @return success The magic bytes `0xdc1600f3` if successful.
    function bridgeTransferFrom(
        address tokenAddress,
        address from,
        address to,
        uint256 amount,
        bytes calldata bridgeData
    )
        external
        returns (bytes4 success);
}

File 6 of 6 : ILiquidityProviderSandbox.sol
/*

  Copyright 2020 ZeroEx Intl.

  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.6.5;
pragma experimental ABIEncoderV2;


interface ILiquidityProviderSandbox {

    /// @dev Calls `sellTokenForToken` on the given `provider` contract to
    ///      trigger a trade.
    /// @param provider The address of the on-chain liquidity provider.
    /// @param inputToken The token being sold.
    /// @param outputToken The token being bought.
    /// @param recipient The recipient of the bought tokens.
    /// @param minBuyAmount The minimum acceptable amount of `outputToken` to buy.
    /// @param auxiliaryData Auxiliary data supplied to the `provider` contract.
    function executeSellTokenForToken(
        address provider,
        address inputToken,
        address outputToken,
        address recipient,
        uint256 minBuyAmount,
        bytes calldata auxiliaryData
    )
        external;

    /// @dev Calls `sellEthForToken` on the given `provider` contract to
    ///      trigger a trade.
    /// @param provider The address of the on-chain liquidity provider.
    /// @param outputToken The token being bought.
    /// @param recipient The recipient of the bought tokens.
    /// @param minBuyAmount The minimum acceptable amount of `outputToken` to buy.
    /// @param auxiliaryData Auxiliary data supplied to the `provider` contract.
    function executeSellEthForToken(
        address provider,
        address outputToken,
        address recipient,
        uint256 minBuyAmount,
        bytes calldata auxiliaryData
    )
        external;

    /// @dev Calls `sellTokenForEth` on the given `provider` contract to
    ///      trigger a trade.
    /// @param provider The address of the on-chain liquidity provider.
    /// @param inputToken The token being sold.
    /// @param recipient The recipient of the bought tokens.
    /// @param minBuyAmount The minimum acceptable amount of ETH to buy.
    /// @param auxiliaryData Auxiliary data supplied to the `provider` contract.
    function executeSellTokenForEth(
        address provider,
        address inputToken,
        address recipient,
        uint256 minBuyAmount,
        bytes calldata auxiliaryData
    )
        external;
}

Settings
{
  "remappings": [
    "@0x/contracts-utils=/Users/michaelzhu/protocol/node_modules/@0x/contracts-utils",
    "@0x/contracts-erc20=/Users/michaelzhu/protocol/contracts/zero-ex/node_modules/@0x/contracts-erc20"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 1000000,
    "details": {
      "yul": true,
      "deduplicate": true,
      "cse": true,
      "constantOptimizer": true
    }
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "evmVersion": "istanbul"
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"minBuyAmount","type":"uint256"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"executeSellEthForToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"minBuyAmount","type":"uint256"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"executeSellTokenForEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"minBuyAmount","type":"uint256"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"executeSellTokenForToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a060405234801561001057600080fd5b5060405161082838038061082883398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61077d6100ab6000398060c2528060f052806101e65280610214528061029452806102ce52806102fc525061077d6000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806314549137146100515780636f025ee6146100665780638da5cb5b14610079578063bb503e2114610097575b600080fd5b61006461005f366004610580565b6100aa565b005b610064610074366004610580565b6101ce565b610081610292565b60405161008e9190610660565b60405180910390f35b6100646100a53660046104ee565b6102b6565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461011957610119610114337f00000000000000000000000000000000000000000000000000000000000000006103d8565b61047b565b6040517f69be90ec00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906369be90ec9061017390889088908890889088906004016106a8565b602060405180830381600087803b15801561018d57600080fd5b505af11580156101a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c59190610600565b50505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461023857610238610114337f00000000000000000000000000000000000000000000000000000000000000006103d8565b6040517fb52e845800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063b52e84589061017390889088908890889088906004016106a8565b7f000000000000000000000000000000000000000000000000000000000000000081565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461032057610320610114337f00000000000000000000000000000000000000000000000000000000000000006103d8565b6040517f65d02b0400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8816906365d02b049061037c908990899089908990899089906004016106f3565b602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ce9190610600565b5050505050505050565b6060631de45ad160e01b83836040516024016103f5929190610681565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b92915050565b805160208201fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461047557600080fd5b60008083601f8401126104b8578182fd5b50813567ffffffffffffffff8111156104cf578182fd5b6020830191508360208285010111156104e757600080fd5b9250929050565b600080600080600080600060c0888a031215610508578283fd5b6105128989610483565b96506105218960208a01610483565b95506105308960408a01610483565b945061053f8960608a01610483565b93506080880135925060a088013567ffffffffffffffff811115610561578283fd5b61056d8a828b016104a7565b989b979a50959850939692959293505050565b60008060008060008060a08789031215610598578182fd5b6105a28888610483565b95506105b18860208901610483565b94506105c08860408901610483565b935060608701359250608087013567ffffffffffffffff8111156105e2578283fd5b6105ee89828a016104a7565b979a9699509497509295939492505050565b600060208284031215610611578081fd5b5051919050565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352808716602084015250846040830152608060608301526106e8608083018486610618565b979650505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8089168352808816602084015280871660408401525084606083015260a0608083015261073b60a083018486610618565b9897505050505050505056fea2646970667358221220e0f2176fb418c48a5db9cb09ee893a8a7b3c8b14340a15f8e72da653e4cbfa0764736f6c634300060c0033000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806314549137146100515780636f025ee6146100665780638da5cb5b14610079578063bb503e2114610097575b600080fd5b61006461005f366004610580565b6100aa565b005b610064610074366004610580565b6101ce565b610081610292565b60405161008e9190610660565b60405180910390f35b6100646100a53660046104ee565b6102b6565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff161461011957610119610114337f000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff6103d8565b61047b565b6040517f69be90ec00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906369be90ec9061017390889088908890889088906004016106a8565b602060405180830381600087803b15801561018d57600080fd5b505af11580156101a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c59190610600565b50505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff161461023857610238610114337f000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff6103d8565b6040517fb52e845800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063b52e84589061017390889088908890889088906004016106a8565b7f000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff81565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff161461032057610320610114337f000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff6103d8565b6040517f65d02b0400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8816906365d02b049061037c908990899089908990899089906004016106f3565b602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ce9190610600565b5050505050505050565b6060631de45ad160e01b83836040516024016103f5929190610681565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b92915050565b805160208201fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461047557600080fd5b60008083601f8401126104b8578182fd5b50813567ffffffffffffffff8111156104cf578182fd5b6020830191508360208285010111156104e757600080fd5b9250929050565b600080600080600080600060c0888a031215610508578283fd5b6105128989610483565b96506105218960208a01610483565b95506105308960408a01610483565b945061053f8960608a01610483565b93506080880135925060a088013567ffffffffffffffff811115610561578283fd5b61056d8a828b016104a7565b989b979a50959850939692959293505050565b60008060008060008060a08789031215610598578182fd5b6105a28888610483565b95506105b18860208901610483565b94506105c08860408901610483565b935060608701359250608087013567ffffffffffffffff8111156105e2578283fd5b6105ee89828a016104a7565b979a9699509497509295939492505050565b600060208284031215610611578081fd5b5051919050565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352808716602084015250846040830152608060608301526106e8608083018486610618565b979650505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8089168352808816602084015280871660408401525084606083015260a0608083015261073b60a083018486610618565b9897505050505050505056fea2646970667358221220e0f2176fb418c48a5db9cb09ee893a8a7b3c8b14340a15f8e72da653e4cbfa0764736f6c634300060c0033

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

000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff

-----Decoded View---------------
Arg [0] : owner_ (address): 0xDef1C0ded9bec7F1a1670819833240f027b25EfF

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


Deployed Bytecode Sourcemap

1071:3286:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3932:423;;;;;;:::i;:::-;;:::i;:::-;;3072:416;;;;;;:::i;:::-;;:::i;1229:30::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2143:472;;;;;;:::i;:::-;;:::i;3932:423::-;1460:10;:19;1474:5;1460:19;;1456:163;;1495:113;:103;1551:10;1579:5;1495:38;:103::i;:::-;:111;:113::i;:::-;4185:163:::1;::::0;;;;:44:::1;::::0;::::1;::::0;::::1;::::0;:163:::1;::::0;4243:10;;4275:9;;4299:12;;4325:13;;;;4185:163:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3932:423:::0;;;;;;:::o;3072:416::-;1460:10;:19;1474:5;1460:19;;1456:163;;1495:113;:103;1551:10;1579:5;1495:38;:103::i;:113::-;3326:155:::1;::::0;;;;:44:::1;::::0;::::1;::::0;::::1;::::0;:155:::1;::::0;3384:11;;3409:9;;3432:12;;3458:13;;;;3326:155:::1;;;:::i;1229:30::-:0;;;:::o;2143:472::-;1460:10;:19;1474:5;1460:19;;1456:163;;1495:113;:103;1551:10;1579:5;1495:38;:103::i;:113::-;2427:181:::1;::::0;;;;:46:::1;::::0;::::1;::::0;::::1;::::0;:181:::1;::::0;2487:10;;2511:11;;2536:9;;2559:12;;2585:13;;;;2427:181:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2143:472:::0;;;;;;;:::o;969:276:4:-;1093:12;765:10;1164:25;;1203:6;1223:5;1128:110;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;969:276:4;;;;;:::o;1492:170:5:-;1635:9;1629:16;1622:4;1611:9;1607:20;1600:46;5:130:-1;72:20;;6796:42;6785:54;;7248:35;;7238:2;;7297:1;;7287:12;156:336;;;270:3;263:4;255:6;251:17;247:27;237:2;;-1:-1;;278:12;237:2;-1:-1;308:20;;348:18;337:30;;334:2;;;-1:-1;;370:12;334:2;414:4;406:6;402:17;390:29;;465:3;414:4;445:17;406:6;431:32;;428:41;425:2;;;482:1;;472:12;425:2;230:262;;;;;:::o;778:993::-;;;;;;;;986:3;974:9;965:7;961:23;957:33;954:2;;;-1:-1;;993:12;954:2;1055:53;1100:7;1076:22;1055:53;:::i;:::-;1045:63;;1163:53;1208:7;1145:2;1188:9;1184:22;1163:53;:::i;:::-;1153:63;;1271:53;1316:7;1253:2;1296:9;1292:22;1271:53;:::i;:::-;1261:63;;1379:53;1424:7;1361:2;1404:9;1400:22;1379:53;:::i;:::-;1369:63;;1469:3;1513:9;1509:22;567:20;1478:63;;1606:3;1595:9;1591:19;1578:33;1631:18;1623:6;1620:30;1617:2;;;-1:-1;;1653:12;1617:2;1691:64;1747:7;1738:6;1727:9;1723:22;1691:64;:::i;:::-;948:823;;;;-1:-1;948:823;;-1:-1;948:823;;;;1673:82;;-1:-1;;;948:823::o;1778:867::-;;;;;;;1969:3;1957:9;1948:7;1944:23;1940:33;1937:2;;;-1:-1;;1976:12;1937:2;2038:53;2083:7;2059:22;2038:53;:::i;:::-;2028:63;;2146:53;2191:7;2128:2;2171:9;2167:22;2146:53;:::i;:::-;2136:63;;2254:53;2299:7;2236:2;2279:9;2275:22;2254:53;:::i;:::-;2244:63;;2344:2;2387:9;2383:22;567:20;2352:63;;2480:3;2469:9;2465:19;2452:33;2505:18;2497:6;2494:30;2491:2;;;-1:-1;;2527:12;2491:2;2565:64;2621:7;2612:6;2601:9;2597:22;2565:64;:::i;:::-;1931:714;;;;-1:-1;1931:714;;-1:-1;1931:714;;2547:82;;1931:714;-1:-1;;;1931:714::o;2652:263::-;;2767:2;2755:9;2746:7;2742:23;2738:32;2735:2;;;-1:-1;;2773:12;2735:2;-1:-1;715:13;;2729:186;-1:-1;2729:186::o;3209:297::-;;6463:6;6458:3;6451:19;7012:6;7007:3;6500:4;6495:3;6491:14;6989:30;-1:-1;6500:4;7059:6;6495:3;7050:16;;7043:27;6500:4;7168:7;7172:2;3492:6;7152:14;7148:28;6495:3;3461:39;;3454:46;;3309:197;;;;;:::o;3634:222::-;6796:42;6785:54;;;;3009:45;;3761:2;3746:18;;3732:124::o;3863:333::-;6796:42;6785:54;;;3009:45;;6785:54;;4182:2;4167:18;;3009:45;4018:2;4003:18;;3989:207::o;4203:692::-;;6796:42;;3047:5;6785:54;3016:3;3009:45;6796:42;3047:5;6785:54;4639:2;4628:9;4624:18;3009:45;;3615:5;4722:2;4711:9;4707:18;3585:37;4458:3;4759:2;4748:9;4744:18;4737:48;4799:86;4458:3;4447:9;4443:19;4871:6;4863;4799:86;:::i;:::-;4791:94;4429:466;-1:-1;;;;;;;4429:466::o;4902:772::-;;6796:42;;3047:5;6785:54;3016:3;3009:45;6796:42;3047:5;6785:54;5334:2;5323:9;5319:18;3009:45;6796:42;3047:5;6785:54;5417:2;5406:9;5402:18;3009:45;;3615:5;5500:2;5489:9;5485:18;3585:37;5169:3;5537;5526:9;5522:19;5515:49;5578:86;5169:3;5158:9;5154:19;5650:6;5642;5578:86;:::i;:::-;5570:94;5140:534;-1:-1;;;;;;;;5140:534::o

Swarm Source

ipfs://e0f2176fb418c48a5db9cb09ee893a8a7b3c8b14340a15f8e72da653e4cbfa07

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.