ETH Price: $2,632.90 (-0.35%)

Contract

0xb572D9ee104F764b25d5f74776C523D8c593D22d
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
163798682023-01-11 0:04:47646 days ago1673395487  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Observability

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : Observability.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.13;

import {IObservability, IObservabilityEvents} from "./interface/IObservability.sol";

contract Observability is IObservability, IObservabilityEvents {
    /// @notice Emitted when a new clone is deployed
    function emitCloneDeployed(address owner, address clone) external override {
        emit CloneDeployed(msg.sender, owner, clone);
    }

    /// @notice Emitted when a sale has occured
    function emitSale(
        address to,
        uint256 pricePerToken,
        uint256 amount
    ) external override {
        emit Sale(msg.sender, to, pricePerToken, amount);
    }

    /// @notice Emitted when funds have been withdrawn
    function emitFundsWithdrawn(
        address withdrawnBy,
        address withdrawnTo,
        uint256 amount
    ) external override {
        emit FundsWithdrawn(msg.sender, withdrawnBy, withdrawnTo, amount);
    }

    /// @notice Emitted when a new implementation is registered
    function emitDeploymentTargetRegistererd(address impl) external override {
        emit DeploymentTargetRegistered(impl);
    }

    /// @notice Emitted when an implementation is unregistered
    function emitDeploymentTargetUnregistered(address impl) external override {
        emit DeploymentTargetUnregistered(impl);
    }

    /// @notice Emitted when a new upgrade is registered
    function emitUpgradeRegistered(
        address prevImpl,
        address impl
    ) external override {
        emit UpgradeRegistered(prevImpl, impl);
    }

    /// @notice Emitted when an upgrade is unregistered
    function emitUpgradeUnregistered(
        address prevImpl,
        address impl
    ) external override {
        emit UpgradeUnregistered(prevImpl, impl);
    }
}

File 2 of 2 : IObservability.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.13;

interface IObservabilityEvents {
    /// @notice Emitted when a new clone is deployed
    event CloneDeployed(
        address indexed factory,
        address indexed owner,
        address clone
    );

    /// @notice Emitted when a sale has occured
    event Sale(
        address indexed clone,
        address indexed to,
        uint256 pricePerToken,
        uint256 amount
    );

    /// @notice Emitted when funds have been withdrawn
    event FundsWithdrawn(
        address indexed clone,
        address indexed withdrawnBy,
        address indexed withdrawnTo,
        uint256 amount
    );

    /// @notice Emitted when a new implementation is registered
    event DeploymentTargetRegistered(address indexed impl);

    /// @notice Emitted when an implementation is unregistered
    event DeploymentTargetUnregistered(address indexed impl);

    /// @notice Emitted when an upgrade is registered
    /// @param prevImpl The address of the previous implementation
    /// @param newImpl The address of the registered upgrade
    event UpgradeRegistered(address indexed prevImpl, address indexed newImpl);

    /// @notice Emitted when an upgrade is unregistered
    /// @param prevImpl The address of the previous implementation
    /// @param newImpl The address of the unregistered upgrade
    event UpgradeUnregistered(
        address indexed prevImpl,
        address indexed newImpl
    );
}

interface IObservability {
    function emitCloneDeployed(address owner, address clone) external;

    function emitSale(
        address to,
        uint256 pricePerToken,
        uint256 amount
    ) external;

    function emitFundsWithdrawn(
        address withdrawnBy,
        address withdrawnTo,
        uint256 amount
    ) external;

    function emitDeploymentTargetRegistererd(address impl) external;

    function emitDeploymentTargetUnregistered(address imp) external;

    function emitUpgradeRegistered(address prevImpl, address impl) external;

    function emitUpgradeUnregistered(address prevImpl, address impl) external;
}

Settings
{
  "remappings": [
    "@0xsequence/sstore2/=lib/sstore2/",
    "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "ERC721A-Upgradeable/=lib/ERC721A-Upgradeable/contracts/",
    "base64-sol/=lib/base64/",
    "base64/=lib/base64/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "ethfs/=lib/ethfs/packages/contracts/src/",
    "ethier/=lib/ethfs/packages/contracts/lib/ethier/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/",
    "openzeppelin/=lib/ethfs/packages/contracts/lib/openzeppelin-contracts/contracts/",
    "solady/=lib/ethfs/packages/contracts/lib/solady/src/",
    "solmate/=lib/ethfs/packages/contracts/lib/solady/lib/solmate/src/",
    "sstore2/=lib/sstore2/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"factory","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"clone","type":"address"}],"name":"CloneDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"impl","type":"address"}],"name":"DeploymentTargetRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"impl","type":"address"}],"name":"DeploymentTargetUnregistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawnBy","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawnTo","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FundsWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"clone","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Sale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevImpl","type":"address"},{"indexed":true,"internalType":"address","name":"newImpl","type":"address"}],"name":"UpgradeRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevImpl","type":"address"},{"indexed":true,"internalType":"address","name":"newImpl","type":"address"}],"name":"UpgradeUnregistered","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"clone","type":"address"}],"name":"emitCloneDeployed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"name":"emitDeploymentTargetRegistererd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"name":"emitDeploymentTargetUnregistered","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"withdrawnBy","type":"address"},{"internalType":"address","name":"withdrawnTo","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitFundsWithdrawn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"prevImpl","type":"address"},{"internalType":"address","name":"impl","type":"address"}],"name":"emitUpgradeRegistered","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"prevImpl","type":"address"},{"internalType":"address","name":"impl","type":"address"}],"name":"emitUpgradeUnregistered","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50610402806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a85a98421161005b578063a85a9842146100bd578063b8263639146100d0578063bbc0ec1f146100e3578063f26b059c146100f657600080fd5b806312907ee4146100825780633b5279f0146100975780633c1ca037146100aa575b600080fd5b610095610090366004610308565b610109565b005b6100956100a536600461032a565b610140565b6100956100b836600461035d565b610184565b6100956100cb36600461032a565b6101e0565b6100956100de36600461032a565b610224565b6100956100f1366004610399565b61026a565b610095610104366004610308565b6102b5565b6040516001600160a01b038216907f8b5836376a9f743887fb75283696a7a3a9964812f4b93c5209f3b5bc30f46b6690600090a250565b806001600160a01b0316826001600160a01b03167fb2fe829a797201ca16e849fb12a3fc16bebe37b07a82e65d81a001b3a693c37d60405160405180910390a35050565b816001600160a01b0316836001600160a01b0316336001600160a01b03167fc322efa58c9cb2c39cfffdac61d35c8643f5cbf13c6a7d0034de2cf18923aff3846040516101d391815260200190565b60405180910390a4505050565b806001600160a01b0316826001600160a01b03167fab6a7dc54721d6a1a284ca865830f8981d6f12fbddb3618d1774b71c0036805960405160405180910390a35050565b6040516001600160a01b03828116825283169033907fe30784b97c85804517b7c35cb82a1ba9f5f5e7a90ceb80ffab76908cb9b1a7089060200160405180910390a35050565b60408051838152602081018390526001600160a01b0385169133917f681ddc67ea8796d2489979f5fc2ea2eb0f2d44ff3f11f061a191928a1f3d9a06910160405180910390a3505050565b6040516001600160a01b038216907fed4ef5883706b2ade9c51ab62bda4df34c37e236bca8efaebac2f624a6d2249990600090a250565b80356001600160a01b038116811461030357600080fd5b919050565b60006020828403121561031a57600080fd5b610323826102ec565b9392505050565b6000806040838503121561033d57600080fd5b610346836102ec565b9150610354602084016102ec565b90509250929050565b60008060006060848603121561037257600080fd5b61037b846102ec565b9250610389602085016102ec565b9150604084013590509250925092565b6000806000606084860312156103ae57600080fd5b6103b7846102ec565b9560208501359550604090940135939250505056fea26469706673582212206cb1ffbb53d88c1fd6175a08ba5bdf25a14507ec7564589d2414d955c3eeba9764736f6c63430008100033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a85a98421161005b578063a85a9842146100bd578063b8263639146100d0578063bbc0ec1f146100e3578063f26b059c146100f657600080fd5b806312907ee4146100825780633b5279f0146100975780633c1ca037146100aa575b600080fd5b610095610090366004610308565b610109565b005b6100956100a536600461032a565b610140565b6100956100b836600461035d565b610184565b6100956100cb36600461032a565b6101e0565b6100956100de36600461032a565b610224565b6100956100f1366004610399565b61026a565b610095610104366004610308565b6102b5565b6040516001600160a01b038216907f8b5836376a9f743887fb75283696a7a3a9964812f4b93c5209f3b5bc30f46b6690600090a250565b806001600160a01b0316826001600160a01b03167fb2fe829a797201ca16e849fb12a3fc16bebe37b07a82e65d81a001b3a693c37d60405160405180910390a35050565b816001600160a01b0316836001600160a01b0316336001600160a01b03167fc322efa58c9cb2c39cfffdac61d35c8643f5cbf13c6a7d0034de2cf18923aff3846040516101d391815260200190565b60405180910390a4505050565b806001600160a01b0316826001600160a01b03167fab6a7dc54721d6a1a284ca865830f8981d6f12fbddb3618d1774b71c0036805960405160405180910390a35050565b6040516001600160a01b03828116825283169033907fe30784b97c85804517b7c35cb82a1ba9f5f5e7a90ceb80ffab76908cb9b1a7089060200160405180910390a35050565b60408051838152602081018390526001600160a01b0385169133917f681ddc67ea8796d2489979f5fc2ea2eb0f2d44ff3f11f061a191928a1f3d9a06910160405180910390a3505050565b6040516001600160a01b038216907fed4ef5883706b2ade9c51ab62bda4df34c37e236bca8efaebac2f624a6d2249990600090a250565b80356001600160a01b038116811461030357600080fd5b919050565b60006020828403121561031a57600080fd5b610323826102ec565b9392505050565b6000806040838503121561033d57600080fd5b610346836102ec565b9150610354602084016102ec565b90509250929050565b60008060006060848603121561037257600080fd5b61037b846102ec565b9250610389602085016102ec565b9150604084013590509250925092565b6000806000606084860312156103ae57600080fd5b6103b7846102ec565b9560208501359550604090940135939250505056fea26469706673582212206cb1ffbb53d88c1fd6175a08ba5bdf25a14507ec7564589d2414d955c3eeba9764736f6c63430008100033

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.