More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,998 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0xfa4ba8c2 | 22325254 | 7 hrs ago | IN | 1 ETH | 0.00037557 | ||||
0xe3c4d585 | 22312000 | 2 days ago | IN | 0 ETH | 0.0000577 | ||||
0xe3c4d585 | 22311999 | 2 days ago | IN | 0 ETH | 0.00006948 | ||||
0xe3c4d585 | 22311997 | 2 days ago | IN | 0 ETH | 0.00006974 | ||||
0xe3c4d585 | 22311996 | 2 days ago | IN | 0 ETH | 0.00006957 | ||||
0xe3c4d585 | 22311993 | 2 days ago | IN | 0 ETH | 0.00006958 | ||||
0xe3c4d585 | 22311992 | 2 days ago | IN | 0 ETH | 0.00008556 | ||||
0xe3c4d585 | 22311985 | 2 days ago | IN | 0 ETH | 0.00006879 | ||||
0xe3c4d585 | 22311983 | 2 days ago | IN | 0 ETH | 0.00006828 | ||||
0xe3c4d585 | 22311982 | 2 days ago | IN | 0 ETH | 0.00006914 | ||||
0xe3c4d585 | 22311981 | 2 days ago | IN | 0 ETH | 0.00006613 | ||||
0xe3c4d585 | 22311979 | 2 days ago | IN | 0 ETH | 0.00006964 | ||||
0xe3c4d585 | 22311978 | 2 days ago | IN | 0 ETH | 0.00007055 | ||||
0xe3c4d585 | 22311977 | 2 days ago | IN | 0 ETH | 0.00007194 | ||||
0xe3c4d585 | 22311976 | 2 days ago | IN | 0 ETH | 0.00006874 | ||||
0xe3c4d585 | 22311976 | 2 days ago | IN | 0 ETH | 0.00006874 | ||||
0xe3c4d585 | 22311975 | 2 days ago | IN | 0 ETH | 0.00007167 | ||||
0xe3c4d585 | 22311974 | 2 days ago | IN | 0 ETH | 0.00006837 | ||||
0xe3c4d585 | 22311973 | 2 days ago | IN | 0 ETH | 0.00006913 | ||||
0xe3c4d585 | 22311972 | 2 days ago | IN | 0 ETH | 0.00008335 | ||||
0xe3c4d585 | 22311971 | 2 days ago | IN | 0 ETH | 0.00006957 | ||||
0xe3c4d585 | 22311970 | 2 days ago | IN | 0 ETH | 0.00007153 | ||||
0xe3c4d585 | 22311969 | 2 days ago | IN | 0 ETH | 0.00007298 | ||||
0xe3c4d585 | 22311968 | 2 days ago | IN | 0 ETH | 0.00006961 | ||||
0xe3c4d585 | 22311967 | 2 days ago | IN | 0 ETH | 0.00006955 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 22325254 | 7 hrs ago | 1 ETH | ||||
Transfer | 22297314 | 4 days ago | 1 ETH | ||||
Transfer | 22281510 | 6 days ago | 0.15 ETH | ||||
0x3d602d80 | 22260943 | 9 days ago | Contract Creation | 0 ETH | |||
Transfer | 22220889 | 14 days ago | 0.00033068 ETH | ||||
Transfer | 22080372 | 34 days ago | 0.00221088 ETH | ||||
Transfer | 22041873 | 39 days ago | 0.00005612 ETH | ||||
Transfer | 22029745 | 41 days ago | 0 ETH | ||||
Transfer | 22027598 | 41 days ago | 0.000009 ETH | ||||
Transfer | 22024491 | 42 days ago | 0.000092 ETH | ||||
Transfer | 22024422 | 42 days ago | 0.000115 ETH | ||||
Transfer | 22021746 | 42 days ago | 0 ETH | ||||
Transfer | 22021719 | 42 days ago | 0 ETH | ||||
Transfer | 22021672 | 42 days ago | 0.00000408 ETH | ||||
Transfer | 22021631 | 42 days ago | 0.00000004 ETH | ||||
Transfer | 22021552 | 42 days ago | 0.00000015 ETH | ||||
Transfer | 22021190 | 42 days ago | 0 ETH | ||||
Transfer | 22021093 | 42 days ago | 0 ETH | ||||
Transfer | 22021081 | 42 days ago | 0.0000003 ETH | ||||
Transfer | 22021039 | 42 days ago | 0 ETH | ||||
Transfer | 22021023 | 42 days ago | 0 ETH | ||||
Transfer | 22019030 | 43 days ago | 0.000006 ETH | ||||
Transfer | 22017790 | 43 days ago | 0 ETH | ||||
Transfer | 22017721 | 43 days ago | 0 ETH | ||||
Transfer | 22008629 | 44 days ago | 0.000018 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
DeBoxOSDiamond
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
Yes with 2000 runs
Other Settings:
shanghai EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: LGPL-3.0-only pragma solidity ^0.8.22; import "./libraries/LibDiamond.sol"; import { IDiamondCut } from "./interfaces/IDiamondCut.sol"; /** * @title DeBoxOSDiamond * @notice DeBox Protocol Diamond contract, contains all the facets(diff modules) of the DeBox Protocol. * @author https://debox.pro */ contract DeBoxOSDiamond { /** * @notice Initialize the contract with the contract owner and the diamondCutFacet * @param _contractOwner The owner of the contract: can execute diamondCut * @param _diamondCutFacet The diamondCutFacet address: for adding, replacing, or removing functions */ constructor(address _contractOwner, address _diamondCutFacet) payable { LibDiamond.setContractOwner(_contractOwner); // Add the diamondCut external function from the diamondCutFacet IDiamondCut.FacetCut[] memory cut = new IDiamondCut.FacetCut[](1); bytes4[] memory functionSelectors = new bytes4[](1); functionSelectors[0] = IDiamondCut.diamondCut.selector; cut[0] = IDiamondCut.FacetCut({ facetAddress: _diamondCutFacet, action: IDiamondCut.FacetCutAction.Add, functionSelectors: functionSelectors }); LibDiamond.diamondCut(cut, address(0), ""); } // Find facet for function that is called and execute the // function if a facet is found and return any value. // solhint-disable-next-line no-complex-fallback fallback() external payable { LibDiamond.DiamondStorage storage ds; bytes32 position = LibDiamond.DIAMOND_STORAGE_POSITION; // get diamond storage // solhint-disable-next-line no-inline-assembly assembly { ds.slot := position } // get facet from function selector address facet = ds.selectorToFacetAndPosition[msg.sig].facetAddress; if (facet == address(0)) { revert LibDiamond.FunctionDoesNotExist(); } // Execute external function from facet using delegatecall and return any value. // solhint-disable-next-line no-inline-assembly assembly { // copy function selector and any arguments calldatacopy(0, 0, calldatasize()) // execute function call using the facet let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0) // get any return value returndatacopy(0, 0, returndatasize()) // return any return value or error back to the caller switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } // Able to receive ether // solhint-disable-next-line no-empty-blocks receive() external payable { } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.22; import { IDiamondCut } from "../interfaces/IDiamondCut.sol"; /// Implementation of EIP-2535 Diamond Standard /// https://eips.ethereum.org/EIPS/eip-2535 library LibDiamond { // Diamond specific errors error IncorrectFacetCutAction(); error NoSelectorsInFacet(); error FunctionAlreadyExists(); error FacetAddressIsZero(); error FacetAddressIsNotZero(); error FacetContainsNoCode(); error FunctionDoesNotExist(); error FunctionIsImmutable(); error InitZeroButCalldataNotEmpty(); error CalldataEmptyButInitNotZero(); error InitReverted(); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event SupportedInterfacesChanged(bytes4 interfaceIds, bool supported); /// @dev keccak256("diamond.standard.diamond.storage"); bytes32 internal constant DIAMOND_STORAGE_POSITION = hex"c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c"; struct FacetAddressAndPosition { address facetAddress; uint96 functionSelectorPosition; // position in facetFunctionSelectors.functionSelectors array } struct FacetFunctionSelectors { bytes4[] functionSelectors; uint256 facetAddressPosition; // position of facetAddress in facetAddresses array } struct DiamondStorage { // maps function selector to the facet address and // the position of the selector in the facetFunctionSelectors.selectors array mapping(bytes4 => FacetAddressAndPosition) selectorToFacetAndPosition; // maps facet addresses to function selectors mapping(address => FacetFunctionSelectors) facetFunctionSelectors; // facet addresses address[] facetAddresses; // Used to query if a contract implements an interface. // Used to implement ERC-165. mapping(bytes4 => bool) supportedInterfaces; // owner of the contract address contractOwner; } function diamondStorage() internal pure returns (DiamondStorage storage $) { bytes32 position = DIAMOND_STORAGE_POSITION; // solhint-disable-next-line no-inline-assembly assembly { $.slot := position } } function contractOwner() internal view returns (address) { return diamondStorage().contractOwner; } function enforceIsContractOwner() internal view { require(msg.sender == diamondStorage().contractOwner, "LibDiamond: Must be contract owner"); } function setContractOwner(address _newOwner) internal { DiamondStorage storage ds = diamondStorage(); address previousOwner = ds.contractOwner; ds.contractOwner = _newOwner; emit OwnershipTransferred(previousOwner, _newOwner); } /** * @notice edit the supported interfaces for the diamond */ function setSupportsInterface(bytes4 _interfaceId, bool _supported) internal { DiamondStorage storage ds = diamondStorage(); if (ds.supportedInterfaces[_interfaceId] == _supported) return; ds.supportedInterfaces[_interfaceId] = _supported; emit SupportedInterfacesChanged(_interfaceId, _supported); } // Internal function version of diamondCut function diamondCut(IDiamondCut.FacetCut[] memory _diamondCut, address _init, bytes memory _calldata) internal { for (uint256 facetIndex; facetIndex < _diamondCut.length;) { IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action; if (action == IDiamondCut.FacetCutAction.Add) { addFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else if (action == IDiamondCut.FacetCutAction.Replace) { replaceFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else if (action == IDiamondCut.FacetCutAction.Remove) { removeFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else { revert IncorrectFacetCutAction(); } unchecked { ++facetIndex; } } emit IDiamondCut.DiamondCut(_diamondCut, _init, _calldata); initializeDiamondCut(_init, _calldata); } function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { if (_facetAddress == address(0)) { revert FacetAddressIsZero(); } if (_functionSelectors.length == 0) { revert NoSelectorsInFacet(); } DiamondStorage storage ds = diamondStorage(); uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length); // add new facet address if it does not exist if (selectorPosition == 0) { addFacet(ds, _facetAddress); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length;) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; if (oldFacetAddress != address(0)) { revert FunctionAlreadyExists(); } addFunction(ds, selector, selectorPosition, _facetAddress); unchecked { ++selectorPosition; ++selectorIndex; } } } function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { if (_functionSelectors.length == 0) { revert NoSelectorsInFacet(); } if (_facetAddress == address(0)) { revert FacetAddressIsZero(); } DiamondStorage storage ds = diamondStorage(); uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length); // add new facet address if it does not exist if (selectorPosition == 0) { addFacet(ds, _facetAddress); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length;) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; if (oldFacetAddress == _facetAddress) { revert FunctionAlreadyExists(); } removeFunction(ds, oldFacetAddress, selector); addFunction(ds, selector, selectorPosition, _facetAddress); unchecked { ++selectorPosition; ++selectorIndex; } } } function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { if (_functionSelectors.length == 0) { revert NoSelectorsInFacet(); } DiamondStorage storage ds = diamondStorage(); // if function does not exist then do nothing and return if (_facetAddress != address(0)) { revert FacetAddressIsNotZero(); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length;) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; removeFunction(ds, oldFacetAddress, selector); unchecked { ++selectorIndex; } } } function addFacet(DiamondStorage storage ds, address _facetAddress) internal { enforceHasContractCode(_facetAddress); ds.facetFunctionSelectors[_facetAddress].facetAddressPosition = ds.facetAddresses.length; ds.facetAddresses.push(_facetAddress); } function addFunction(DiamondStorage storage ds, bytes4 _selector, uint96 _selectorPosition, address _facetAddress) internal { ds.selectorToFacetAndPosition[_selector].functionSelectorPosition = _selectorPosition; ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(_selector); ds.selectorToFacetAndPosition[_selector].facetAddress = _facetAddress; } function removeFunction(DiamondStorage storage ds, address _facetAddress, bytes4 _selector) internal { if (_facetAddress == address(0)) { revert FunctionDoesNotExist(); } // an immutable function is a function defined directly in a diamond if (_facetAddress == address(this)) { revert FunctionIsImmutable(); } // replace selector with last selector, then delete last selector uint256 selectorPosition = ds.selectorToFacetAndPosition[_selector].functionSelectorPosition; uint256 lastSelectorPosition = ds.facetFunctionSelectors[_facetAddress].functionSelectors.length - 1; // if not the same then replace _selector with lastSelector if (selectorPosition != lastSelectorPosition) { bytes4 lastSelector = ds.facetFunctionSelectors[_facetAddress].functionSelectors[lastSelectorPosition]; ds.facetFunctionSelectors[_facetAddress].functionSelectors[selectorPosition] = lastSelector; ds.selectorToFacetAndPosition[lastSelector].functionSelectorPosition = uint96(selectorPosition); } // delete the last selector ds.facetFunctionSelectors[_facetAddress].functionSelectors.pop(); delete ds.selectorToFacetAndPosition[_selector]; // if no more selectors for facet address then delete the facet address if (lastSelectorPosition == 0) { // replace facet address with last facet address and delete last facet address uint256 lastFacetAddressPosition = ds.facetAddresses.length - 1; uint256 facetAddressPosition = ds.facetFunctionSelectors[_facetAddress].facetAddressPosition; if (facetAddressPosition != lastFacetAddressPosition) { address lastFacetAddress = ds.facetAddresses[lastFacetAddressPosition]; ds.facetAddresses[facetAddressPosition] = lastFacetAddress; ds.facetFunctionSelectors[lastFacetAddress].facetAddressPosition = facetAddressPosition; } ds.facetAddresses.pop(); delete ds.facetFunctionSelectors[_facetAddress].facetAddressPosition; } } function initializeDiamondCut(address _init, bytes memory _calldata) internal { if (_init == address(0)) { if (_calldata.length != 0) { revert InitZeroButCalldataNotEmpty(); } } else { if (_calldata.length == 0) { revert CalldataEmptyButInitNotZero(); } if (_init != address(this)) { enforceHasContractCode(_init); } // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory error) = _init.delegatecall(_calldata); if (!success) { if (error.length > 0) { // bubble up the error revert(string(error)); } else { revert InitReverted(); } } } } function enforceHasContractCode(address _contract) internal view { uint256 contractSize; // solhint-disable-next-line no-inline-assembly assembly { contractSize := extcodesize(_contract) } if (contractSize == 0) { revert FacetContainsNoCode(); } } }
// SPDX-License-Identifier: GPL v3 pragma solidity ^0.8.22; interface IDiamondCut { enum FacetCutAction { Add, // 0 Replace, // 1 Remove // 2 } struct FacetCut { address facetAddress; FacetCutAction action; bytes4[] functionSelectors; } /// @notice Add/replace/remove any number of functions and optionally execute /// a function with delegatecall /// @param _diamondCut Contains the facet addresses and function selectors /// @param _init The address of the contract or facet to execute _calldata /// @param _calldata A function call, including function selector and arguments /// _calldata is executed with delegatecall on _init function diamondCut(FacetCut[] calldata _diamondCut, address _init, bytes calldata _calldata) external; /** * @notice Emitted when the diamond cut is executed */ event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata); }
{ "remappings": [ "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@ds-test/=lib/forge-std/lib/ds-test/src/", "@std/=lib/forge-std/src/", "@thirdweb/dynamic-contracts/=lib/dynamic-contracts/src/", "@dynamic/=lib/dynamic-contracts/src/", "lib/sstore2/=lib/dynamic-contracts/lib/sstore2/", "@solmate/=lib/solmate/src/", "@solworld/=lib/solworld/", "@random/=lib/foundry-random/src/", "@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/", "src/=src/", "@debox/=src/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@prb/test/=lib/foundry-random/lib/prb-test/src/", "CramBit/=lib/foundry-random/lib/CramBit/", "crambit/=lib/foundry-random/lib/CramBit/src/", "ds-test/=lib/solmate/lib/ds-test/src/", "dynamic-contracts/=lib/dynamic-contracts/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "foundry-random/=lib/foundry-random/src/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/", "openzeppelin-upgrades/=lib/openzeppelin-upgrades/", "prb-test/=lib/foundry-random/lib/prb-test/src/", "solidity-bytes-utils/=lib/foundry-random/lib/solidity-bytes-utils/contracts/", "solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/", "solmate/=lib/solmate/src/", "solworld/=lib/solworld/", "sstore2/=lib/dynamic-contracts/lib/sstore2/contracts/" ], "optimizer": { "enabled": true, "runs": 2000 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "shanghai", "viaIR": true, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_contractOwner","type":"address"},{"internalType":"address","name":"_diamondCutFacet","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[],"name":"CalldataEmptyButInitNotZero","type":"error"},{"inputs":[],"name":"FacetAddressIsNotZero","type":"error"},{"inputs":[],"name":"FacetAddressIsZero","type":"error"},{"inputs":[],"name":"FacetContainsNoCode","type":"error"},{"inputs":[],"name":"FunctionAlreadyExists","type":"error"},{"inputs":[],"name":"FunctionDoesNotExist","type":"error"},{"inputs":[],"name":"FunctionIsImmutable","type":"error"},{"inputs":[],"name":"IncorrectFacetCutAction","type":"error"},{"inputs":[],"name":"InitReverted","type":"error"},{"inputs":[],"name":"InitZeroButCalldataNotEmpty","type":"error"},{"inputs":[],"name":"NoSelectorsInFacet","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false,"internalType":"struct IDiamondCut.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"indexed":false,"internalType":"address","name":"_init","type":"address"},{"indexed":false,"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"DiamondCut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806001600160401b03601f610b9638819003918201601f1916840191838311858410176105b75780859260409485528339810103126105f15761004e602061004784610633565b9301610633565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c132080546001600160a01b039485166001600160a01b03198216811790925591939091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36100bd610614565b91600183525f5b602081106105cb57506100d5610614565b60018152602036818301376307e4c70760e21b6100f182610647565b526100fa6105f5565b6001600160a01b0390921682525f6020830152604082015261011b83610647565b5261012582610647565b506040519060208201908111828210176105b7576040525f808252825b805182101561045c5760206101578383610668565b5101516003811015610448578061028f57506001600160a01b0361017b8383610668565b515116604061018a8484610668565b510151811561027d5780511561026b576001600160a01b0382165f9081525f80516020610b7683398151915260205260409020546001600160601b039390841690811561025d575b5f915b8351831015610249576001600160e01b03196101f18486610668565b51165f8181525f80516020610b3683398151915260205260409020549091906001600160a01b03166102375760018161022d888a948496610994565b01169201916101d5565b60405163a023275d60e01b8152600490fd5b50959492505050600191505b019091610142565b6102668461091b565b6101d2565b60405163092d2fe560e41b8152600490fd5b604051636347641d60e11b8152600490fd5b6001810361038f57506001600160a01b036102aa8383610668565b5151169260406102ba8484610668565b51015180511561026b57841561027d576001600160a01b0385165f9081525f80516020610b7683398151915260205260409020546001600160601b0393908416908115610381575b5f915b8351831015610372576001600160e01b03196103218486610668565b51165f8181525f80516020610b3683398151915260205260409020546001600160a01b03169089821461023757826103688b6001958461036388968e986106c0565b610994565b0116920191610305565b50955050509160019150610255565b61038a8761091b565b610302565b600203610436576001600160a01b036103a88383610668565b5151169060406103b88483610668565b5101519182511561026b57610424575f5b8251811015610418576001906104126001600160e01b03196103eb8387610668565b5116805f525f80516020610b36833981519152602052838060a01b0360405f2054166106c0565b016103c9565b50929160019150610255565b604051633ce4ef9160e11b8152600490fd5b60405163e548e6b560e01b8152600490fd5b634e487b7160e01b5f52602160045260245ffd5b905060405190606082016060835281518091526080830190602060808260051b8601019301915f905b82821061052157505050505f6020830152818103604083015282518082525f5b81811061050c57508282825f602080957f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6739897010152601f801991011601030190a1516104fa5760405160f19081610a458239f35b6040516304c08b4360e51b8152600490fd5b806020809287010151828286010152016104a5565b858503607f19018152835180516001600160a01b03168652602081015194959394929391929060038210156104485760409160208401520151906060604082015260206080835192836060820152019201905f905b80821061059457505050602080600192960192019201909291610485565b82516001600160e01b031916845260209384019390920191600190910190610576565b634e487b7160e01b5f52604160045260245ffd5b6020906105d66105f5565b5f81525f8382015260606040820152828287010152016100c4565b5f80fd5b60405190606082016001600160401b038111838210176105b757604052565b60408051919082016001600160401b038111838210176105b757604052565b51906001600160a01b03821682036105f157565b8051156106545760200190565b634e487b7160e01b5f52603260045260245ffd5b80518210156106545760209160051b010190565b9190918054831015610654575f52601c60205f208360031c019260021b1690565b5f80516020610b568339815191528054821015610654575f5260205f2001905f90565b6001600160a01b03908116918215610909573083146108f75763ffffffff60e01b809116805f525f80516020610b3683398151915293602090858252604093845f205460a01c96825f525f80516020610b7683398151915294858552865f2054925f19998a850194851161085857889187898888850361086c575b9450505050505f52858552865f20805480156107f4578a019061075e828261067c565b63ffffffff82549160031b1b19169055555f5283525f8581205515610786575b505050505050565b5f80516020610b5683398151915294855487810190811161085857825f52848452816001875f20015491808303610808575b50505085549586156107f4575f9760019701916107d48361069d565b909182549160031b1b1916905555855252822001555f808080808061077e565b634e487b7160e01b5f52603160045260245ffd5b6108119061069d565b90549060031b1c16610844816108268461069d565b90919060018060a01b038084549260031b9316831b921b1916179055565b5f528484526001865f2001555f81816107b8565b634e487b7160e01b5f52601160045260245ffd5b6108a1856108ec976108be94845f5280875261088a8d835f2061067c565b90549060031b1c60e01b9687955f52525f2061067c565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b165f90815284885289902080546001600160a01b031660a09290921b6001600160a01b031916919091179055565b865f8087898861073b565b60405163c3c5ec3760e01b8152600490fd5b604051631535ac5f60e31b8152600490fd5b803b15610983575f80516020610b5683398151915280546001600160a01b0383165f9081525f80516020610b76833981519152602052604090206001018190559190680100000000000000008310156105b757826108269160016109819501905561069d565b565b6040516271a80360e91b8152600490fd5b6001600160e01b031981165f8181525f80516020610b368339815191526020819052604090912080546001600160a01b031660a09590951b6001600160a01b0319169490941790935590926001600160a01b03165f8181525f80516020610b76833981519152602052604090208054919490680100000000000000008310156105b757826108a1916001610a2a9501815561067c565b5f5260205260405f209060018060a01b031982541617905556fe6080604052361560b9577fffffffff000000000000000000000000000000000000000000000000000000005f35165f527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c60205273ffffffffffffffffffffffffffffffffffffffff60405f2054168015608f575f8091368280378136915af43d5f803e15608b573d5ff35b3d5ffd5b7fa9ad62f80000000000000000000000000000000000000000000000000000000060805260046080fd5b00fea2646970667358221220b69a0fc5f3d2199087ffea6a337ad15472f195d7de61331271d97daea8b1708b64736f6c63430008170033c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131cc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131ec8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d00000000000000000000000082eb6481ab69df6f8b43b9883ca611b8ea6300950000000000000000000000005d60e89edb990806af8edbbea77e44aab03e71de
Deployed Bytecode
0x6080604052361560b9577fffffffff000000000000000000000000000000000000000000000000000000005f35165f527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c60205273ffffffffffffffffffffffffffffffffffffffff60405f2054168015608f575f8091368280378136915af43d5f803e15608b573d5ff35b3d5ffd5b7fa9ad62f80000000000000000000000000000000000000000000000000000000060805260046080fd5b00fea2646970667358221220b69a0fc5f3d2199087ffea6a337ad15472f195d7de61331271d97daea8b1708b64736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000082eb6481ab69df6f8b43b9883ca611b8ea6300950000000000000000000000005d60e89edb990806af8edbbea77e44aab03e71de
-----Decoded View---------------
Arg [0] : _contractOwner (address): 0x82eb6481aB69dF6f8B43b9883cA611B8EA630095
Arg [1] : _diamondCutFacet (address): 0x5d60E89edb990806af8edbbea77E44aaB03E71De
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000082eb6481ab69df6f8b43b9883ca611b8ea630095
Arg [1] : 0000000000000000000000005d60e89edb990806af8edbbea77e44aab03e71de
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 39.17% | $1 | 353.414 | $353.41 | |
ETH | 37.12% | $1,757.17 | 0.1906 | $334.92 | |
ETH | 19.06% | $0.999918 | 171.9914 | $171.98 | |
ETH | 3.72% | $0.005654 | 5,936.3415 | $33.56 | |
ETH | 0.57% | $0.00001 | 533,721.8967 | $5.18 | |
ETH | 0.09% | $1,757.17 | 0.00045173 | $0.7937 | |
ETH | 0.08% | <$0.000001 | 24,198,298.0028 | $0.7184 | |
ETH | 0.06% | $0.064155 | 9 | $0.5773 | |
ETH | 0.04% | $16.32 | 0.0226 | $0.3686 | |
ETH | 0.03% | $535.05 | 0.00047166 | $0.2523 | |
ETH | 0.02% | $2.2 | 0.09 | $0.198 | |
ETH | 0.02% | $0.001058 | 180 | $0.1903 |
Loading...
Loading
Loading...
Loading
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.