Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 16624499 | 503 days ago | IN | Create: FactoryUpgradeGate | 0 ETH | 0.01031372 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
20184433 | 3 days ago | 0 ETH | |||||
19733694 | 66 days ago | 0 ETH | |||||
19708813 | 70 days ago | 0 ETH | |||||
19686471 | 73 days ago | 0 ETH | |||||
19682285 | 73 days ago | 0 ETH | |||||
19323395 | 124 days ago | 0 ETH | |||||
19301195 | 127 days ago | 0 ETH | |||||
19236606 | 136 days ago | 0 ETH | |||||
19196961 | 141 days ago | 0 ETH | |||||
19171908 | 145 days ago | 0 ETH | |||||
19156728 | 147 days ago | 0 ETH | |||||
19144512 | 149 days ago | 0 ETH | |||||
19142361 | 149 days ago | 0 ETH | |||||
19000889 | 169 days ago | 0 ETH | |||||
18992913 | 170 days ago | 0 ETH | |||||
18944150 | 177 days ago | 0 ETH | |||||
18930706 | 179 days ago | 0 ETH | |||||
18919087 | 180 days ago | 0 ETH | |||||
18885475 | 185 days ago | 0 ETH | |||||
18883351 | 185 days ago | 0 ETH | |||||
18846388 | 191 days ago | 0 ETH | |||||
18846387 | 191 days ago | 0 ETH | |||||
18846373 | 191 days ago | 0 ETH | |||||
18846370 | 191 days ago | 0 ETH | |||||
18846368 | 191 days ago | 0 ETH |
Loading...
Loading
Contract Name:
FactoryUpgradeGate
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 5000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.10; import {IFactoryUpgradeGate} from "./interfaces/IFactoryUpgradeGate.sol"; import {Ownable2Step} from "./utils/ownable/Ownable2Step.sol"; /** ________ _____ ____ ______ ____ /\_____ \ /\ __`\/\ _`\ /\ _ \ /\ _`\ \/____//'/'\ \ \/\ \ \ \L\ \ \ \L\ \ \ \ \/\ \ _ __ ___ _____ ____ //'/' \ \ \ \ \ \ , /\ \ __ \ \ \ \ \ \/\`'__\/ __`\/\ '__`\ /',__\ //'/'___ \ \ \_\ \ \ \\ \\ \ \/\ \ \ \ \_\ \ \ \//\ \L\ \ \ \L\ \/\__, `\ /\_______\\ \_____\ \_\ \_\ \_\ \_\ \ \____/\ \_\\ \____/\ \ ,__/\/\____/ \/_______/ \/_____/\/_/\/ /\/_/\/_/ \/___/ \/_/ \/___/ \ \ \/ \/___/ \ \_\ \/_/ */ /// @notice This contract handles gating allowed upgrades for Zora drops contracts contract FactoryUpgradeGate is IFactoryUpgradeGate, Ownable2Step { /// @notice Private mapping of valid upgrade paths mapping(address => mapping(address => bool)) private _validUpgradePaths; /// @notice Emitted when an upgrade path is added / registered event UpgradePathRegistered(address newImpl, address oldImpl); /// @notice Emitted when an upgrade path is removed event UpgradePathRemoved(address newImpl, address oldImpl); /// @notice Error for when not called from admin error Access_OnlyOwner(); /// @notice Sets the owner and inits the contract /// @param _initialOwner owner of the contract constructor(address _initialOwner) Ownable2Step(_initialOwner) {} /// @notice Ensures the given upgrade path is valid and does not overwrite existing storage slots /// @param _newImpl The proposed implementation address /// @param _currentImpl The current implementation address function isValidUpgradePath(address _newImpl, address _currentImpl) external view returns (bool) { return _validUpgradePaths[_newImpl][_currentImpl]; } /// @notice Registers a new safe upgrade path for an implementation /// @param _newImpl The new implementation /// @param _supportedPrevImpls Safe implementations that can upgrade to this new implementation function registerNewUpgradePath( address _newImpl, address[] calldata _supportedPrevImpls ) external onlyOwner { for (uint256 i = 0; i < _supportedPrevImpls.length; i++) { _validUpgradePaths[_newImpl][_supportedPrevImpls[i]] = true; emit UpgradePathRegistered(_newImpl, _supportedPrevImpls[i]); } } /// @notice Unregisters an upgrade path, in case of emergency /// @param _newImpl the newer implementation /// @param _prevImpl the older implementation function unregisterUpgradePath(address _newImpl, address _prevImpl) external onlyOwner { _validUpgradePaths[_newImpl][_prevImpl] = false; emit UpgradePathRemoved(_newImpl, _prevImpl); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.10; interface IFactoryUpgradeGate { function isValidUpgradePath(address _newImpl, address _currentImpl) external returns (bool); function registerNewUpgradePath(address _newImpl, address[] calldata _supportedPrevImpls) external; function unregisterUpgradePath(address _newImpl, address _prevImpl) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; /// @title IOwnable2Step /// @author Rohan Kulkarni / Iain Nash /// @notice The external Ownable events, errors, and functions interface IOwnable2Step { /// /// /// EVENTS /// /// /// /// @notice Emitted when ownership has been updated /// @param prevOwner The previous owner address /// @param newOwner The new owner address event OwnerUpdated(address indexed prevOwner, address indexed newOwner); /// @notice Emitted when an ownership transfer is pending /// @param owner The current owner address /// @param pendingOwner The pending new owner address event OwnerPending(address indexed owner, address indexed pendingOwner); /// @notice Emitted when a pending ownership transfer has been canceled /// @param owner The current owner address /// @param canceledOwner The canceled owner address event OwnerCanceled(address indexed owner, address indexed canceledOwner); /// /// /// ERRORS /// /// /// /// @dev Reverts if an unauthorized user calls an owner function error ONLY_OWNER(); /// @dev Reverts if an unauthorized user calls a pending owner function error ONLY_PENDING_OWNER(); /// @dev Owner cannot be the zero/burn address error OWNER_CANNOT_BE_ZERO_ADDRESS(); /// /// /// FUNCTIONS /// /// /// /// @notice The address of the owner function owner() external view returns (address); /// @notice The address of the pending owner function pendingOwner() external view returns (address); /// @notice Forces an ownership transfer /// @param newOwner The new owner address function transferOwnership(address newOwner) external; /// @notice Initiates a two-step ownership transfer /// @param newOwner The new owner address function safeTransferOwnership(address newOwner) external; /// @notice Accepts an ownership transfer function acceptOwnership() external; /// @notice Cancels a pending ownership transfer function cancelOwnershipTransfer() external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; import {IOwnable2Step} from "./IOwnable2Step.sol"; /// @title Ownable2Step /// @author Iain Nash /// @dev - Uses custom errors declared in IOwnable /// @dev - Adds optional two-step ownership transfer (`safeTransferOwnership` + `acceptOwnership`) abstract contract Ownable2Step is IOwnable2Step { /// @dev The address of the owner address internal _owner; /// @dev The address of the pending owner address internal _pendingOwner; constructor(address _defaultOwner) { _transferOwnership(_defaultOwner); } /// /// /// STORAGE /// /// /// /// @dev Modifier to check if the address argument is the zero/burn address modifier notZeroAddress(address check) { if (check == address(0)) { revert OWNER_CANNOT_BE_ZERO_ADDRESS(); } _; } /// /// /// MODIFIERS /// /// /// /// @dev Ensures the caller is the owner modifier onlyOwner() { if (msg.sender != _owner) { revert ONLY_OWNER(); } _; } /// @dev Ensures the caller is the pending owner modifier onlyPendingOwner() { if (msg.sender != _pendingOwner) { revert ONLY_PENDING_OWNER(); } _; } /// /// /// FUNCTIONS /// /// /// /// @notice The address of the owner function owner() public view virtual returns (address) { return _owner; } /// @notice The address of the pending owner function pendingOwner() public view returns (address) { return _pendingOwner; } /// @notice Forces an ownership transfer from the last owner /// @param _newOwner The new owner address function transferOwnership(address _newOwner) public notZeroAddress(_newOwner) onlyOwner { _transferOwnership(_newOwner); } /// @notice Forces an ownership transfer from any sender /// @param _newOwner New owner to transfer contract to /// @dev Ensure is called only from trusted internal code, no access control checks. function _transferOwnership(address _newOwner) internal { emit OwnerUpdated(_owner, _newOwner); _owner = _newOwner; if (_pendingOwner != address(0)) { delete _pendingOwner; } } /// @notice Initiates a two-step ownership transfer /// @param _newOwner The new owner address function safeTransferOwnership(address _newOwner) public notZeroAddress(_newOwner) onlyOwner { _pendingOwner = _newOwner; emit OwnerPending(_owner, _newOwner); } /// @notice Resign ownership of contract /// @dev only callably by the owner, dangerous call. function resignOwnership() public onlyOwner { _transferOwnership(address(0)); } /// @notice Accepts an ownership transfer function acceptOwnership() public onlyPendingOwner { emit OwnerUpdated(_owner, msg.sender); _owner = _pendingOwner; delete _pendingOwner; } /// @notice Cancels a pending ownership transfer function cancelOwnershipTransfer() public onlyOwner { emit OwnerCanceled(_owner, _pendingOwner); delete _pendingOwner; } }
{ "remappings": [ "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "ERC721A-Upgradeable/=lib/ERC721A-Upgradeable/contracts/", "base64/=lib/base64/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc721a-upgradeable/=lib/ERC721A-Upgradeable/contracts/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 5000 }, "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
[{"inputs":[{"internalType":"address","name":"_initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Access_OnlyOwner","type":"error"},{"inputs":[],"name":"ONLY_OWNER","type":"error"},{"inputs":[],"name":"ONLY_PENDING_OWNER","type":"error"},{"inputs":[],"name":"OWNER_CANNOT_BE_ZERO_ADDRESS","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"canceledOwner","type":"address"}],"name":"OwnerCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnerPending","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newImpl","type":"address"},{"indexed":false,"internalType":"address","name":"oldImpl","type":"address"}],"name":"UpgradePathRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newImpl","type":"address"},{"indexed":false,"internalType":"address","name":"oldImpl","type":"address"}],"name":"UpgradePathRemoved","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelOwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImpl","type":"address"},{"internalType":"address","name":"_currentImpl","type":"address"}],"name":"isValidUpgradePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newImpl","type":"address"},{"internalType":"address[]","name":"_supportedPrevImpls","type":"address[]"}],"name":"registerNewUpgradePath","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resignOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"safeTransferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImpl","type":"address"},{"internalType":"address","name":"_prevImpl","type":"address"}],"name":"unregisterUpgradePath","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610a65380380610a6583398101604081905261002f916100b6565b8061003981610040565b50506100e6565b600080546040516001600160a01b03808516939216917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7691a3600080546001600160a01b0319166001600160a01b038381169190911790915560015416156100b357600180546001600160a01b03191690555b50565b6000602082840312156100c857600080fd5b81516001600160a01b03811681146100df57600080fd5b9392505050565b610970806100f56000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638942865411610076578063e30c39781161005b578063e30c397814610184578063ed0c709114610195578063f2fde38b1461019d57600080fd5b8063894286541461014c5780638da5cb5b1461015f57600080fd5b806373995833116100a757806373995833146100e057806379ba5097146101315780638466a71c1461013957600080fd5b806323452b9c146100c3578063395db2cd146100cd575b600080fd5b6100cb6101b0565b005b6100cb6100db3660046107d1565b61025b565b61011c6100ee3660046107f3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b60405190151581526020015b60405180910390f35b6100cb61034a565b6100cb6101473660046107f3565b610405565b6100cb61015a366004610826565b6104d2565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610128565b6001546001600160a01b031661016c565b6100cb61062d565b6100cb6101ab3660046107d1565b61067d565b6000546001600160a01b031633146101f4576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600080546040516001600160a01b0393841693909116917f682679deecef4dcd49674845cc1e3a075fea9073680aa445a8207d5a4bdea3da91a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b806001600160a01b03811661029c576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b031633146102e0576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384811691821790925560008054604051929316917f4f2638f5949b9614ef8d5e268cb51348ad7f434a34812bf64b6e95014fbd357e9190a35050565b6001546001600160a01b0316331461038e576040517f065cd53100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805460405133926001600160a01b03909216917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7691a360018054600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b03841617909155169055565b6000546001600160a01b03163314610449576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382811660008181526002602090815260408083209486168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581519283528201929092527fa3a0491075ec5f5949945a6f452fb9e0619a4dacc65a568ad2da3210cc91cdab910160405180910390a15050565b6000546001600160a01b03163314610516576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610627576001600160a01b038416600090815260026020526040812060019185858581811061054e5761054e6108ac565b905060200201602081019061056391906107d1565b6001600160a01b03168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790557f7acfb66a4ce41040d432f980d35151e6d37f3279e6f8dbf383b0f5112271462f848484848181106105dd576105dd6108ac565b90506020020160208101906105f291906107d1565b604080516001600160a01b0393841681529290911660208301520160405180910390a18061061f816108db565b915050610519565b50505050565b6000546001600160a01b03163314610671576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b600061070f565b565b806001600160a01b0381166106be576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b03163314610702576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61070b8261070f565b5050565b600080546040516001600160a01b03808516939216917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7691a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038381169190911790915560015416156107b257600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b50565b80356001600160a01b03811681146107cc57600080fd5b919050565b6000602082840312156107e357600080fd5b6107ec826107b5565b9392505050565b6000806040838503121561080657600080fd5b61080f836107b5565b915061081d602084016107b5565b90509250929050565b60008060006040848603121561083b57600080fd5b610844846107b5565b9250602084013567ffffffffffffffff8082111561086157600080fd5b818601915086601f83011261087557600080fd5b81358181111561088457600080fd5b8760208260051b850101111561089957600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610933577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220a124600e6ac4e05308139e6bb7d6caf6b96bb8b5e46e779fdfa56c0fc940bc1664736f6c63430008110033000000000000000000000000db392f4391462d60b8b4413ef72018ab595af9d0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80638942865411610076578063e30c39781161005b578063e30c397814610184578063ed0c709114610195578063f2fde38b1461019d57600080fd5b8063894286541461014c5780638da5cb5b1461015f57600080fd5b806373995833116100a757806373995833146100e057806379ba5097146101315780638466a71c1461013957600080fd5b806323452b9c146100c3578063395db2cd146100cd575b600080fd5b6100cb6101b0565b005b6100cb6100db3660046107d1565b61025b565b61011c6100ee3660046107f3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b60405190151581526020015b60405180910390f35b6100cb61034a565b6100cb6101473660046107f3565b610405565b6100cb61015a366004610826565b6104d2565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610128565b6001546001600160a01b031661016c565b6100cb61062d565b6100cb6101ab3660046107d1565b61067d565b6000546001600160a01b031633146101f4576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154600080546040516001600160a01b0393841693909116917f682679deecef4dcd49674845cc1e3a075fea9073680aa445a8207d5a4bdea3da91a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b806001600160a01b03811661029c576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b031633146102e0576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384811691821790925560008054604051929316917f4f2638f5949b9614ef8d5e268cb51348ad7f434a34812bf64b6e95014fbd357e9190a35050565b6001546001600160a01b0316331461038e576040517f065cd53100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805460405133926001600160a01b03909216917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7691a360018054600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b03841617909155169055565b6000546001600160a01b03163314610449576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382811660008181526002602090815260408083209486168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905581519283528201929092527fa3a0491075ec5f5949945a6f452fb9e0619a4dacc65a568ad2da3210cc91cdab910160405180910390a15050565b6000546001600160a01b03163314610516576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610627576001600160a01b038416600090815260026020526040812060019185858581811061054e5761054e6108ac565b905060200201602081019061056391906107d1565b6001600160a01b03168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790557f7acfb66a4ce41040d432f980d35151e6d37f3279e6f8dbf383b0f5112271462f848484848181106105dd576105dd6108ac565b90506020020160208101906105f291906107d1565b604080516001600160a01b0393841681529290911660208301520160405180910390a18061061f816108db565b915050610519565b50505050565b6000546001600160a01b03163314610671576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b600061070f565b565b806001600160a01b0381166106be576040517f2c4ec43e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b03163314610702576040517fd238ed5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61070b8261070f565b5050565b600080546040516001600160a01b03808516939216917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7691a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038381169190911790915560015416156107b257600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b50565b80356001600160a01b03811681146107cc57600080fd5b919050565b6000602082840312156107e357600080fd5b6107ec826107b5565b9392505050565b6000806040838503121561080657600080fd5b61080f836107b5565b915061081d602084016107b5565b90509250929050565b60008060006040848603121561083b57600080fd5b610844846107b5565b9250602084013567ffffffffffffffff8082111561086157600080fd5b818601915086601f83011261087557600080fd5b81358181111561088457600080fd5b8760208260051b850101111561089957600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610933577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea2646970667358221220a124600e6ac4e05308139e6bb7d6caf6b96bb8b5e46e779fdfa56c0fc940bc1664736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000db392f4391462d60b8b4413ef72018ab595af9d0
-----Decoded View---------------
Arg [0] : _initialOwner (address): 0xDB392f4391462d60B8B4413ef72018Ab595Af9D0
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000db392f4391462d60b8b4413ef72018ab595af9d0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.