Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
16379868 | 771 days ago | Contract Creation | 0 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
Contract Source Code (Solidity Standard Json-Input format)
// 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); } }
// 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; }
{ "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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
608060405234801561001057600080fd5b50610402806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a85a98421161005b578063a85a9842146100bd578063b8263639146100d0578063bbc0ec1f146100e3578063f26b059c146100f657600080fd5b806312907ee4146100825780633b5279f0146100975780633c1ca037146100aa575b600080fd5b610095610090366004610308565b610109565b005b6100956100a536600461032a565b610140565b6100956100b836600461035d565b610184565b6100956100cb36600461032a565b6101e0565b6100956100de36600461032a565b610224565b6100956100f1366004610399565b61026a565b610095610104366004610308565b6102b5565b6040516001600160a01b038216907f8b5836376a9f743887fb75283696a7a3a9964812f4b93c5209f3b5bc30f46b6690600090a250565b806001600160a01b0316826001600160a01b03167fb2fe829a797201ca16e849fb12a3fc16bebe37b07a82e65d81a001b3a693c37d60405160405180910390a35050565b816001600160a01b0316836001600160a01b0316336001600160a01b03167fc322efa58c9cb2c39cfffdac61d35c8643f5cbf13c6a7d0034de2cf18923aff3846040516101d391815260200190565b60405180910390a4505050565b806001600160a01b0316826001600160a01b03167fab6a7dc54721d6a1a284ca865830f8981d6f12fbddb3618d1774b71c0036805960405160405180910390a35050565b6040516001600160a01b03828116825283169033907fe30784b97c85804517b7c35cb82a1ba9f5f5e7a90ceb80ffab76908cb9b1a7089060200160405180910390a35050565b60408051838152602081018390526001600160a01b0385169133917f681ddc67ea8796d2489979f5fc2ea2eb0f2d44ff3f11f061a191928a1f3d9a06910160405180910390a3505050565b6040516001600160a01b038216907fed4ef5883706b2ade9c51ab62bda4df34c37e236bca8efaebac2f624a6d2249990600090a250565b80356001600160a01b038116811461030357600080fd5b919050565b60006020828403121561031a57600080fd5b610323826102ec565b9392505050565b6000806040838503121561033d57600080fd5b610346836102ec565b9150610354602084016102ec565b90509250929050565b60008060006060848603121561037257600080fd5b61037b846102ec565b9250610389602085016102ec565b9150604084013590509250925092565b6000806000606084860312156103ae57600080fd5b6103b7846102ec565b9560208501359550604090940135939250505056fea26469706673582212206cb1ffbb53d88c1fd6175a08ba5bdf25a14507ec7564589d2414d955c3eeba9764736f6c63430008100033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a85a98421161005b578063a85a9842146100bd578063b8263639146100d0578063bbc0ec1f146100e3578063f26b059c146100f657600080fd5b806312907ee4146100825780633b5279f0146100975780633c1ca037146100aa575b600080fd5b610095610090366004610308565b610109565b005b6100956100a536600461032a565b610140565b6100956100b836600461035d565b610184565b6100956100cb36600461032a565b6101e0565b6100956100de36600461032a565b610224565b6100956100f1366004610399565b61026a565b610095610104366004610308565b6102b5565b6040516001600160a01b038216907f8b5836376a9f743887fb75283696a7a3a9964812f4b93c5209f3b5bc30f46b6690600090a250565b806001600160a01b0316826001600160a01b03167fb2fe829a797201ca16e849fb12a3fc16bebe37b07a82e65d81a001b3a693c37d60405160405180910390a35050565b816001600160a01b0316836001600160a01b0316336001600160a01b03167fc322efa58c9cb2c39cfffdac61d35c8643f5cbf13c6a7d0034de2cf18923aff3846040516101d391815260200190565b60405180910390a4505050565b806001600160a01b0316826001600160a01b03167fab6a7dc54721d6a1a284ca865830f8981d6f12fbddb3618d1774b71c0036805960405160405180910390a35050565b6040516001600160a01b03828116825283169033907fe30784b97c85804517b7c35cb82a1ba9f5f5e7a90ceb80ffab76908cb9b1a7089060200160405180910390a35050565b60408051838152602081018390526001600160a01b0385169133917f681ddc67ea8796d2489979f5fc2ea2eb0f2d44ff3f11f061a191928a1f3d9a06910160405180910390a3505050565b6040516001600160a01b038216907fed4ef5883706b2ade9c51ab62bda4df34c37e236bca8efaebac2f624a6d2249990600090a250565b80356001600160a01b038116811461030357600080fd5b919050565b60006020828403121561031a57600080fd5b610323826102ec565b9392505050565b6000806040838503121561033d57600080fd5b610346836102ec565b9150610354602084016102ec565b90509250929050565b60008060006060848603121561037257600080fd5b61037b846102ec565b9250610389602085016102ec565b9150604084013590509250925092565b6000806000606084860312156103ae57600080fd5b6103b7846102ec565b9560208501359550604090940135939250505056fea26469706673582212206cb1ffbb53d88c1fd6175a08ba5bdf25a14507ec7564589d2414d955c3eeba9764736f6c63430008100033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.