ETH Price: $2,339.67 (+0.96%)

Contract

0x99Be07778Acd2e8118486eeb6281366EAF52977a

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Deploy4279622822026-02-02 20:47:061 hr ago1770065226IN
0x99Be0777...EAF52977a
0 ETH0.000002930.020108
Deploy4279589732026-02-02 20:33:201 hr ago1770064400IN
0x99Be0777...EAF52977a
0 ETH0.000002920.020044
Deploy4279535672026-02-02 20:10:512 hrs ago1770063051IN
0x99Be0777...EAF52977a
0 ETH0.000002920.020034
Deploy4279460432026-02-02 19:39:352 hrs ago1770061175IN
0x99Be0777...EAF52977a
0 ETH0.000002920.020004
Deploy4279344722026-02-02 18:51:283 hrs ago1770058288IN
0x99Be0777...EAF52977a
0 ETH0.000002920.020014
Deploy4279287002026-02-02 18:27:313 hrs ago1770056851IN
0x99Be0777...EAF52977a
0 ETH0.000002920.020014
Deploy4279230762026-02-02 18:04:104 hrs ago1770055450IN
0x99Be0777...EAF52977a
0 ETH0.000002950.02023
Deploy4279159452026-02-02 17:34:374 hrs ago1770053677IN
0x99Be0777...EAF52977a
0 ETH0.000002930.020056
Deploy4279105402026-02-02 17:12:195 hrs ago1770052339IN
0x99Be0777...EAF52977a
0 ETH0.000002920.020014
Deploy4278924822026-02-02 15:57:256 hrs ago1770047845IN
0x99Be0777...EAF52977a
0 ETH0.000002960.020294
Deploy4278187072026-02-02 10:51:1511 hrs ago1770029475IN
0x99Be0777...EAF52977a
0 ETH0.000002930.020058
Deploy4277925542026-02-02 9:02:4313 hrs ago1770022963IN
0x99Be0777...EAF52977a
0 ETH0.000002930.020076
Deploy4277893832026-02-02 8:49:3113 hrs ago1770022171IN
0x99Be0777...EAF52977a
0 ETH0.000002940.020134
Deploy4277845992026-02-02 8:29:4013 hrs ago1770020980IN
0x99Be0777...EAF52977a
0 ETH0.000002920.020044
Deploy4277296682026-02-02 4:41:4017 hrs ago1770007300IN
0x99Be0777...EAF52977a
0 ETH0.000003080.021132
Deploy4276681212026-02-02 0:26:2521 hrs ago1769991985IN
0x99Be0777...EAF52977a
0 ETH0.000002950.020244
Deploy4276366072026-02-01 22:15:4224 hrs ago1769984142IN
0x99Be0777...EAF52977a
0 ETH0.000002930.020072
Deploy4276248312026-02-01 21:26:4824 hrs ago1769981208IN
0x99Be0777...EAF52977a
0 ETH0.000002930.0201
Deploy4276217122026-02-01 21:13:5125 hrs ago1769980431IN
0x99Be0777...EAF52977a
0 ETH0.000002950.0202
Deploy4276093022026-02-01 20:22:1626 hrs ago1769977336IN
0x99Be0777...EAF52977a
0 ETH0.000002930.020058
Deploy4275979152026-02-01 19:34:5626 hrs ago1769974496IN
0x99Be0777...EAF52977a
0 ETH0.000002930.02006
Deploy4275948252026-02-01 19:22:0527 hrs ago1769973725IN
0x99Be0777...EAF52977a
0 ETH0.000002920.02
Deploy4275917362026-02-01 19:09:1427 hrs ago1769972954IN
0x99Be0777...EAF52977a
0 ETH0.000002930.020084
Deploy4275861972026-02-01 18:46:1127 hrs ago1769971571IN
0x99Be0777...EAF52977a
0 ETH0.000002930.020064
Deploy4275722492026-02-01 17:48:1528 hrs ago1769968095IN
0x99Be0777...EAF52977a
0 ETH0.000002920.020048
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
4279622822026-02-02 20:47:061 hr ago1770065226
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4279589732026-02-02 20:33:201 hr ago1770064400
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4279535672026-02-02 20:10:512 hrs ago1770063051
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4279460432026-02-02 19:39:352 hrs ago1770061175
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4279344722026-02-02 18:51:283 hrs ago1770058288
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4279287002026-02-02 18:27:313 hrs ago1770056851
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4279230762026-02-02 18:04:104 hrs ago1770055450
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4279159452026-02-02 17:34:374 hrs ago1770053677
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4279105402026-02-02 17:12:195 hrs ago1770052339
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4278924822026-02-02 15:57:256 hrs ago1770047845
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4278187072026-02-02 10:51:1511 hrs ago1770029475
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4277925542026-02-02 9:02:4313 hrs ago1770022963
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4277893832026-02-02 8:49:3113 hrs ago1770022171
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4277845992026-02-02 8:29:4013 hrs ago1770020980
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4277296682026-02-02 4:41:4017 hrs ago1770007300
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4276681212026-02-02 0:26:2521 hrs ago1769991985
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4276366072026-02-01 22:15:4224 hrs ago1769984142
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4276248312026-02-01 21:26:4824 hrs ago1769981208
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4276217122026-02-01 21:13:5125 hrs ago1769980431
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4276093022026-02-01 20:22:1626 hrs ago1769977336
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4275979152026-02-01 19:34:5626 hrs ago1769974496
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4275948252026-02-01 19:22:0527 hrs ago1769973725
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4275917362026-02-01 19:09:1427 hrs ago1769972954
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4275861972026-02-01 18:46:1127 hrs ago1769971571
0x99Be0777...EAF52977a
 Contract Creation0 ETH
4275722492026-02-01 17:48:1528 hrs ago1769968095
0x99Be0777...EAF52977a
 Contract Creation0 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

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

Contract Name:
MinimalProxyFactory

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.20;

import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
import {Context} from "@openzeppelin/contracts/utils/Context.sol";
import {Storage} from "../storage/Storage.sol";

contract MinimalProxyFactory is Context {
  address public info;

  event MinimalProxyCreated(address minimalProxy);

  error ProxyInitializationFailed();

  error Forbidden();

  constructor(address _info) {
    info = _info;
  }

  function _getContractCreationCode(address logic) internal pure returns (bytes memory) {
    bytes10 creation = 0x3d602d80600a3d3981f3;
    bytes10 prefix = 0x363d3d373d3d3d363d73;
    bytes20 targetBytes = bytes20(logic);
    bytes15 suffix = 0x5af43d82803e903d91602b57fd5bf3;

    return abi.encodePacked(creation, prefix, targetBytes, suffix);
  }

  /**
   * @notice Calculates proxy contract address for salt.
   * @param salt CREATE2 opcode salt.
   * @param implementation Proxy implementation contract address.
   * @return Proxy contract address.
   */
  function computeAddress(bytes32 salt, address implementation) external view returns (address) {
    return Create2.computeAddress(salt, keccak256(_getContractCreationCode(implementation)), address(this));
  }

  /**
   * @notice Deploy and initialize minimal proxy contract for salt.
   * @param salt CREATE2 opcode salt.
   * @param implementation Proxy implementation contract address.
   * @param data Initialize method data.
   * @return Proxy contract address.
   */
  function deploy(bytes32 salt, address implementation, bytes memory data) external returns (address) {
    bool isCallAllowed = Storage(info).getBool(
      keccak256(abi.encodePacked("EH:MinimalProxyFactory:Deployer:", _msgSender()))
    );
    if (!isCallAllowed) revert Forbidden();

    address minimalProxy = Create2.deploy(0, salt, _getContractCreationCode(implementation));
    if (data.length > 0) {
      // solhint-disable-next-line avoid-low-level-calls
      (bool success, ) = minimalProxy.call(data);
      if (!success) revert ProxyInitializationFailed();
    }

    emit MinimalProxyCreated(minimalProxy);

    return minimalProxy;
  }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Create2.sol)

pragma solidity ^0.8.20;

/**
 * @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.
 * `CREATE2` can be used to compute in advance the address where a smart
 * contract will be deployed, which allows for interesting new mechanisms known
 * as 'counterfactual interactions'.
 *
 * See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more
 * information.
 */
library Create2 {
    /**
     * @dev Not enough balance for performing a CREATE2 deploy.
     */
    error Create2InsufficientBalance(uint256 balance, uint256 needed);

    /**
     * @dev There's no code to deploy.
     */
    error Create2EmptyBytecode();

    /**
     * @dev The deployment failed.
     */
    error Create2FailedDeployment();

    /**
     * @dev Deploys a contract using `CREATE2`. The address where the contract
     * will be deployed can be known in advance via {computeAddress}.
     *
     * The bytecode for a contract can be obtained from Solidity with
     * `type(contractName).creationCode`.
     *
     * Requirements:
     *
     * - `bytecode` must not be empty.
     * - `salt` must have not been used for `bytecode` already.
     * - the factory must have a balance of at least `amount`.
     * - if `amount` is non-zero, `bytecode` must have a `payable` constructor.
     */
    function deploy(uint256 amount, bytes32 salt, bytes memory bytecode) internal returns (address addr) {
        if (address(this).balance < amount) {
            revert Create2InsufficientBalance(address(this).balance, amount);
        }
        if (bytecode.length == 0) {
            revert Create2EmptyBytecode();
        }
        /// @solidity memory-safe-assembly
        assembly {
            addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt)
        }
        if (addr == address(0)) {
            revert Create2FailedDeployment();
        }
    }

    /**
     * @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the
     * `bytecodeHash` or `salt` will result in a new destination address.
     */
    function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) {
        return computeAddress(salt, bytecodeHash, address(this));
    }

    /**
     * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at
     * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.
     */
    function computeAddress(bytes32 salt, bytes32 bytecodeHash, address deployer) internal pure returns (address addr) {
        /// @solidity memory-safe-assembly
        assembly {
            let ptr := mload(0x40) // Get free memory pointer

            // |                   | ↓ ptr ...  ↓ ptr + 0x0B (start) ...  ↓ ptr + 0x20 ...  ↓ ptr + 0x40 ...   |
            // |-------------------|---------------------------------------------------------------------------|
            // | bytecodeHash      |                                                        CCCCCCCCCCCCC...CC |
            // | salt              |                                      BBBBBBBBBBBBB...BB                   |
            // | deployer          | 000000...0000AAAAAAAAAAAAAAAAAAA...AA                                     |
            // | 0xFF              |            FF                                                             |
            // |-------------------|---------------------------------------------------------------------------|
            // | memory            | 000000...00FFAAAAAAAAAAAAAAAAAAA...AABBBBBBBBBBBBB...BBCCCCCCCCCCCCC...CC |
            // | keccak(start, 85) |            ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ |

            mstore(add(ptr, 0x40), bytecodeHash)
            mstore(add(ptr, 0x20), salt)
            mstore(ptr, deployer) // Right-aligned with 12 preceding garbage bytes
            let start := add(ptr, 0x0b) // The hashed data starts at the final garbage byte which we will set to 0xff
            mstore8(start, 0xff)
            addr := keccak256(start, 85)
        }
    }
}

// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/access/Ownable.sol";

contract Storage is Ownable {
  /// @dev Bytes storage.
  mapping(bytes32 => bytes) private _bytes;

  /// @dev Bool storage.
  mapping(bytes32 => bool) private _bool;

  /// @dev Uint storage.
  mapping(bytes32 => uint256) private _uint;

  /// @dev Int storage.
  mapping(bytes32 => int256) private _int;

  /// @dev Address storage.
  mapping(bytes32 => address) private _address;

  /// @dev String storage.
  mapping(bytes32 => string) private _string;

  event Updated(bytes32 indexed key);

  constructor() Ownable(_msgSender()) {}

  /**
   * @param key The key for the record
   */
  function getBytes(bytes32 key) external view returns (bytes memory) {
    return _bytes[key];
  }

  /**
   * @param key The key for the record
   */
  function getBool(bytes32 key) external view returns (bool) {
    return _bool[key];
  }

  /**
   * @param key The key for the record
   */
  function getUint(bytes32 key) external view returns (uint256) {
    return _uint[key];
  }

  /**
   * @param key The key for the record
   */
  function getInt(bytes32 key) external view returns (int256) {
    return _int[key];
  }

  /**
   * @param key The key for the record
   */
  function getAddress(bytes32 key) external view returns (address) {
    return _address[key];
  }

  /**
   * @param key The key for the record
   */
  function getString(bytes32 key) external view returns (string memory) {
    return _string[key];
  }

  /**
   * @param key The key for the record
   * @param value The value to set.
   */
  function setBytes(bytes32 key, bytes calldata value) external onlyOwner {
    _bytes[key] = value;
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   * @param value The value to set.
   */
  function setBool(bytes32 key, bool value) external onlyOwner {
    _bool[key] = value;
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   * @param value The value to set.
   */
  function setUint(bytes32 key, uint256 value) external onlyOwner {
    _uint[key] = value;
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   * @param value The value to set.
   */
  function setInt(bytes32 key, int256 value) external onlyOwner {
    _int[key] = value;
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   * @param value The value to set.
   */
  function setAddress(bytes32 key, address value) external onlyOwner {
    _address[key] = value;
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   * @param value The value to set.
   */
  function setString(bytes32 key, string calldata value) external onlyOwner {
    _string[key] = value;
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   */
  function deleteBytes(bytes32 key) external onlyOwner {
    delete _bytes[key];
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   */
  function deleteBool(bytes32 key) external onlyOwner {
    delete _bool[key];
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   */
  function deleteUint(bytes32 key) external onlyOwner {
    delete _uint[key];
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   */
  function deleteInt(bytes32 key) external onlyOwner {
    delete _int[key];
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   */
  function deleteAddress(bytes32 key) external onlyOwner {
    delete _address[key];
    emit Updated(key);
  }

  /**
   * @param key The key for the record
   */
  function deleteString(bytes32 key) external onlyOwner {
    delete _string[key];
    emit Updated(key);
  }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_info","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Create2EmptyBytecode","type":"error"},{"inputs":[],"name":"Create2FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"Create2InsufficientBalance","type":"error"},{"inputs":[],"name":"Forbidden","type":"error"},{"inputs":[],"name":"ProxyInitializationFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"minimalProxy","type":"address"}],"name":"MinimalProxyCreated","type":"event"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"address","name":"implementation","type":"address"}],"name":"computeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"deploy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"info","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

0x608060405234801561001057600080fd5b506040516105f73803806105f783398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610564806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632781212e146100465780632f1f618d14610075578063370158ea14610088575b600080fd5b6100596100543660046103e6565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b6100596100833660046104b1565b61027a565b600054610059906001600160a01b031681565b6000805481906001600160a01b0316637ae1cfca336040516020016100fe91907f45483a4d696e696d616c50726f7879466163746f72793a4465706c6f7965723a815260609190911b6bffffffffffffffffffffffff1916602082015260340190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161013291815260200190565b602060405180830381865afa15801561014f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017391906104dd565b90508061019357604051631dd2188d60e31b815260040160405180910390fd5b60006101a96000876101a488610296565b610306565b845190915015610233576000816001600160a01b0316856040516101cd91906104ff565b6000604051808303816000865af19150503d806000811461020a576040519150601f19603f3d011682016040523d82523d6000602084013e61020f565b606091505b50509050806102315760405163f44a721360e01b815260040160405180910390fd5b505b6040516001600160a01b03821681527f16f1e151dcf4eb1663400df93379828c17dea844757ee03e3038178d0038c3a79060200160405180910390a19150505b9392505050565b60006102738361028984610296565b805190602001203061038a565b60408051693d602d80600a3d3981f360b01b602082015269363d3d373d3d3d363d7360b01b602a82015260609290921b6bffffffffffffffffffffffff191660348301526e5af43d82803e903d91602b57fd5bf360881b6048830152805160378184030181526057909201905290565b6000834710156103365760405163392efb2b60e21b81524760048201526024810185905260440160405180910390fd5b815160000361035857604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661027357604051633a0ba96160e11b815260040160405180910390fd5b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b80356001600160a01b03811681146103cb57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156103fb57600080fd5b8335925061040b602085016103b4565b9150604084013567ffffffffffffffff8082111561042857600080fd5b818601915086601f83011261043c57600080fd5b81358181111561044e5761044e6103d0565b604051601f8201601f19908116603f01168101908382118183101715610476576104766103d0565b8160405282815289602084870101111561048f57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080604083850312156104c457600080fd5b823591506104d4602084016103b4565b90509250929050565b6000602082840312156104ef57600080fd5b8151801515811461027357600080fd5b6000825160005b818110156105205760208186018101518583015201610506565b50600092019182525091905056fea2646970667358221220de2eb7e440db4e7b74c7be57c80e149c8fc5fc0329a8db65c8baa79270b94f0064736f6c63430008180033000000000000000000000000c7c1943bccbc81b8de5b7f407c00b7805ea3ea0c

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632781212e146100465780632f1f618d14610075578063370158ea14610088575b600080fd5b6100596100543660046103e6565b61009b565b6040516001600160a01b03909116815260200160405180910390f35b6100596100833660046104b1565b61027a565b600054610059906001600160a01b031681565b6000805481906001600160a01b0316637ae1cfca336040516020016100fe91907f45483a4d696e696d616c50726f7879466163746f72793a4465706c6f7965723a815260609190911b6bffffffffffffffffffffffff1916602082015260340190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161013291815260200190565b602060405180830381865afa15801561014f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017391906104dd565b90508061019357604051631dd2188d60e31b815260040160405180910390fd5b60006101a96000876101a488610296565b610306565b845190915015610233576000816001600160a01b0316856040516101cd91906104ff565b6000604051808303816000865af19150503d806000811461020a576040519150601f19603f3d011682016040523d82523d6000602084013e61020f565b606091505b50509050806102315760405163f44a721360e01b815260040160405180910390fd5b505b6040516001600160a01b03821681527f16f1e151dcf4eb1663400df93379828c17dea844757ee03e3038178d0038c3a79060200160405180910390a19150505b9392505050565b60006102738361028984610296565b805190602001203061038a565b60408051693d602d80600a3d3981f360b01b602082015269363d3d373d3d3d363d7360b01b602a82015260609290921b6bffffffffffffffffffffffff191660348301526e5af43d82803e903d91602b57fd5bf360881b6048830152805160378184030181526057909201905290565b6000834710156103365760405163392efb2b60e21b81524760048201526024810185905260440160405180910390fd5b815160000361035857604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661027357604051633a0ba96160e11b815260040160405180910390fd5b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b80356001600160a01b03811681146103cb57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156103fb57600080fd5b8335925061040b602085016103b4565b9150604084013567ffffffffffffffff8082111561042857600080fd5b818601915086601f83011261043c57600080fd5b81358181111561044e5761044e6103d0565b604051601f8201601f19908116603f01168101908382118183101715610476576104766103d0565b8160405282815289602084870101111561048f57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080604083850312156104c457600080fd5b823591506104d4602084016103b4565b90509250929050565b6000602082840312156104ef57600080fd5b8151801515811461027357600080fd5b6000825160005b818110156105205760208186018101518583015201610506565b50600092019182525091905056fea2646970667358221220de2eb7e440db4e7b74c7be57c80e149c8fc5fc0329a8db65c8baa79270b94f0064736f6c63430008180033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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