Source Code (Proxy)
Latest 25 from a total of 239 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Borrow From Long | 24000711 | 13 hrs ago | IN | 0 ETH | 0.00002098 | ||||
| Repay To Long | 23998523 | 20 hrs ago | IN | 0 ETH | 0.00001229 | ||||
| Repay To Long | 23998453 | 21 hrs ago | IN | 0 ETH | 0.00001119 | ||||
| Borrow From Long | 23995491 | 31 hrs ago | IN | 0.15 ETH | 0.00007377 | ||||
| Borrow From Long | 23991017 | 46 hrs ago | IN | 0 ETH | 0.00091487 | ||||
| Borrow From Long | 23985729 | 2 days ago | IN | 0 ETH | 0.00008402 | ||||
| Borrow From Long | 23984882 | 2 days ago | IN | 0 ETH | 0.00115728 | ||||
| Borrow From Long | 23984773 | 2 days ago | IN | 0 ETH | 0.00118924 | ||||
| Borrow From Long | 23984474 | 2 days ago | IN | 0 ETH | 0.00118874 | ||||
| Borrow From Long | 23984187 | 2 days ago | IN | 0 ETH | 0.00058739 | ||||
| Borrow From Long | 23983301 | 3 days ago | IN | 0 ETH | 0.00120312 | ||||
| Borrow From Long | 23982954 | 3 days ago | IN | 0 ETH | 0.00011671 | ||||
| Borrow From Long | 23980729 | 3 days ago | IN | 0 ETH | 0.00017079 | ||||
| Borrow From Long | 23980706 | 3 days ago | IN | 0.3 ETH | 0.00090038 | ||||
| Borrow From Long | 23968122 | 5 days ago | IN | 0 ETH | 0.00018911 | ||||
| Borrow From Long | 23963826 | 5 days ago | IN | 1 ETH | 0.00033591 | ||||
| Borrow From Long | 23963733 | 5 days ago | IN | 2.53 ETH | 0.00038299 | ||||
| Borrow From Long | 23963678 | 5 days ago | IN | 0 ETH | 0.00021152 | ||||
| Borrow From Long | 23963614 | 5 days ago | IN | 0 ETH | 0.00038357 | ||||
| Borrow From Long | 23954983 | 6 days ago | IN | 1 ETH | 0.00001882 | ||||
| Borrow From Long | 23954978 | 6 days ago | IN | 0 ETH | 0.00001557 | ||||
| Borrow From Long | 23953543 | 7 days ago | IN | 0 ETH | 0.00001126 | ||||
| Borrow From Long | 23952983 | 7 days ago | IN | 0 ETH | 0.00001327 | ||||
| Borrow From Long | 23950183 | 7 days ago | IN | 0 ETH | 0.00049115 | ||||
| Repay To Long | 23948918 | 7 days ago | IN | 0 ETH | 0.00043658 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Convert | 23995491 | 31 hrs ago | 0.15 ETH | ||||
| Convert | 23980706 | 3 days ago | 0.3 ETH | ||||
| Convert | 23963826 | 5 days ago | 1 ETH | ||||
| Convert | 23963733 | 5 days ago | 2.53 ETH | ||||
| Convert | 23954983 | 6 days ago | 1 ETH | ||||
| Convert | 23933644 | 10 days ago | 0.001 ETH | ||||
| Convert | 23931692 | 10 days ago | 0.115 ETH | ||||
| Convert | 23931016 | 10 days ago | 1.05 ETH | ||||
| Transfer | 23930083 | 10 days ago | 0.00258708 ETH | ||||
| Transfer | 23930083 | 10 days ago | 0.00258708 ETH | ||||
| Convert | 23928949 | 10 days ago | 10 ETH | ||||
| Convert | 23917968 | 12 days ago | 0.06 ETH | ||||
| Convert | 23917943 | 12 days ago | 0.0375052 ETH | ||||
| Convert | 23911037 | 13 days ago | 0.4 ETH | ||||
| Convert | 23910960 | 13 days ago | 0.5 ETH | ||||
| Convert | 23889257 | 16 days ago | 7 ETH | ||||
| Convert | 23872230 | 18 days ago | 16.3 ETH | ||||
| Convert | 23854729 | 21 days ago | 2 ETH | ||||
| Convert | 23849795 | 21 days ago | 2.2 ETH | ||||
| Convert | 23847383 | 22 days ago | 1.35 ETH | ||||
| Convert | 23847371 | 22 days ago | 1.4 ETH | ||||
| Convert | 23847290 | 22 days ago | 0.9 ETH | ||||
| Convert | 23847283 | 22 days ago | 1.11 ETH | ||||
| Convert | 23846174 | 22 days ago | 2 ETH | ||||
| Convert | 23845100 | 22 days ago | 47.09144 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Diamond
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: CC0-1.0 pragma solidity ^0.8.0; /******************************************************************************\ * Author: Nick Mudge <[email protected]>, Twitter/Github: @mudgen * EIP-2535 Diamonds * * Implementation of a diamond. /******************************************************************************/ import { LibDiamond } from "./libraries/LibDiamond.sol"; import { IDiamondCut } from "./interfaces/IDiamondCut.sol"; import { IDiamondLoupe } from "./interfaces/IDiamondLoupe.sol"; import { IERC173 } from "./interfaces/IERC173.sol"; import { IERC165 } from "./interfaces/IERC165.sol"; // solhint-disable no-complex-fallback // solhint-disable no-inline-assembly // solhint-disable no-empty-blocks // When no function exists for function called error FunctionNotFound(bytes4 _functionSelector); // This is used in diamond constructor // more arguments are added to this struct // this avoids stack too deep errors struct DiamondArgs { address owner; address init; bytes initCalldata; } contract Diamond { constructor(IDiamondCut.FacetCut[] memory _diamondCut, DiamondArgs memory _args) payable { LibDiamond.setContractOwner(_args.owner); LibDiamond.diamondCut(_diamondCut, _args.init, _args.initCalldata); // Code can be added here to perform actions and set state variables. } // Find facet for function that is called and execute the // function if a facet is found and return any value. fallback() external payable { LibDiamond.DiamondStorage storage ds; bytes32 position = LibDiamond.DIAMOND_STORAGE_POSITION; // get diamond storage assembly { ds.slot := position } // get facet from function selector address facet = ds.facetAddressAndSelectorPosition[msg.sig].facetAddress; if (facet == address(0)) { revert FunctionNotFound(msg.sig); } // Execute external function from facet using delegatecall and return any value. 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()) } } } receive() external payable {} }
// SPDX-License-Identifier: CC0-1.0 pragma solidity ^0.8.0; /******************************************************************************\ * Author: Nick Mudge <[email protected]>, Twitter/Github: @mudgen * EIP-2535 Diamonds /******************************************************************************/ interface IDiamond { enum FacetCutAction { Add, Replace, Remove } // Add=0, Replace=1, Remove=2 struct FacetCut { address facetAddress; FacetCutAction action; bytes4[] functionSelectors; } event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata); }
// SPDX-License-Identifier: CC0-1.0 pragma solidity ^0.8.0; /******************************************************************************\ * Author: Nick Mudge <[email protected]>, Twitter/Github: @mudgen * EIP-2535 Diamonds /******************************************************************************/ import { IDiamond } from "./IDiamond.sol"; interface IDiamondCut is IDiamond { /// @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; }
// SPDX-License-Identifier: CC0-1.0 pragma solidity ^0.8.0; /******************************************************************************\ * Author: Nick Mudge <[email protected]>, Twitter/Github: @mudgen * EIP-2535 Diamonds /******************************************************************************/ // A loupe is a small magnifying glass used to look at diamonds. // These functions look at diamonds interface IDiamondLoupe { /// These functions are expected to be called frequently /// by tools. struct Facet { address facetAddress; bytes4[] functionSelectors; } /// @notice Gets all facet addresses and their four byte function selectors. /// @return facets_ Facet function facets() external view returns (Facet[] memory facets_); /// @notice Gets all the function selectors supported by a specific facet. /// @param _facet The facet address. /// @return facetFunctionSelectors_ function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_); /// @notice Get all the facet addresses used by a diamond. /// @return facetAddresses_ function facetAddresses() external view returns (address[] memory facetAddresses_); /// @notice Gets the facet that supports the given selector. /// @dev If facet is not found return address(0). /// @param _functionSelector The function selector. /// @return facetAddress_ The facet address. function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_); }
// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.0;
interface IERC165 {
/// @notice Query if a contract implements an interface
/// @param interfaceId The interface identifier, as specified in ERC-165
/// @dev Interface identification is specified in ERC-165. This function
/// uses less than 30,000 gas.
/// @return `true` if the contract implements `interfaceID` and
/// `interfaceID` is not 0xffffffff, `false` otherwise
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.0;
/// @title ERC-173 Contract Ownership Standard
/// Note: the ERC-165 identifier for this interface is 0x7f5828d0
/* is ERC165 */
interface IERC173 {
/// @dev This emits when ownership of a contract changes.
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/// @notice Get the address of the owner
/// @return owner_ The address of the owner.
function owner() external view returns (address owner_);
/// @notice Set the address of the new owner of the contract
/// @dev Set _newOwner to address(0) to renounce any ownership.
/// @param _newOwner The address of the new owner of the contract
function transferOwnership(address _newOwner) external;
}// SPDX-License-Identifier: CC0-1.0 pragma solidity ^0.8.0; /******************************************************************************\ * Author: Nick Mudge <[email protected]>, Twitter/Github: @mudgen * EIP-2535 Diamonds /******************************************************************************/ import { IDiamond } from "../interfaces/IDiamond.sol"; import { IDiamondCut } from "../interfaces/IDiamondCut.sol"; // solhint-disable avoid-low-level-calls // solhint-disable no-inline-assembly // Remember to add the loupe functions from DiamondLoupeFacet to the diamond. // The loupe functions are required by the EIP2535 Diamonds standard error NoSelectorsGivenToAdd(); error NotContractOwner(address _user, address _contractOwner); error NoSelectorsProvidedForFacetForCut(address _facetAddress); error CannotAddSelectorsToZeroAddress(bytes4[] _selectors); error NoBytecodeAtAddress(address _contractAddress, string _message); error IncorrectFacetCutAction(uint8 _action); error CannotAddFunctionToDiamondThatAlreadyExists(bytes4 _selector); error CannotReplaceFunctionsFromFacetWithZeroAddress(bytes4[] _selectors); error CannotReplaceImmutableFunction(bytes4 _selector); error CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet(bytes4 _selector); error CannotReplaceFunctionThatDoesNotExists(bytes4 _selector); error RemoveFacetAddressMustBeZeroAddress(address _facetAddress); error CannotRemoveFunctionThatDoesNotExist(bytes4 _selector); error CannotRemoveImmutableFunction(bytes4 _selector); error InitializationFunctionReverted(address _initializationContractAddress, bytes _calldata); library LibDiamond { bytes32 internal constant DIAMOND_STORAGE_POSITION = keccak256("diamond.standard.diamond.storage"); struct FacetAddressAndSelectorPosition { address facetAddress; uint16 selectorPosition; } struct DiamondStorage { // function selector => facet address and selector position in selectors array mapping(bytes4 => FacetAddressAndSelectorPosition) facetAddressAndSelectorPosition; bytes4[] selectors; mapping(bytes4 => bool) supportedInterfaces; // owner of the contract address contractOwner; } function diamondStorage() internal pure returns (DiamondStorage storage ds) { bytes32 position = DIAMOND_STORAGE_POSITION; assembly { ds.slot := position } } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function setContractOwner(address _newOwner) internal { DiamondStorage storage ds = diamondStorage(); address previousOwner = ds.contractOwner; ds.contractOwner = _newOwner; emit OwnershipTransferred(previousOwner, _newOwner); } function contractOwner() internal view returns (address contractOwner_) { contractOwner_ = diamondStorage().contractOwner; } function enforceIsContractOwner() internal view { if (msg.sender != diamondStorage().contractOwner) { revert NotContractOwner(msg.sender, diamondStorage().contractOwner); } } event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata); // Internal function version of diamondCut function diamondCut( IDiamondCut.FacetCut[] memory _diamondCut, address _init, bytes memory _calldata ) internal { for (uint256 facetIndex; facetIndex < _diamondCut.length; facetIndex++) { bytes4[] memory functionSelectors = _diamondCut[facetIndex].functionSelectors; address facetAddress = _diamondCut[facetIndex].facetAddress; if (functionSelectors.length == 0) { revert NoSelectorsProvidedForFacetForCut(facetAddress); } IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action; if (action == IDiamond.FacetCutAction.Add) { addFunctions(facetAddress, functionSelectors); } else if (action == IDiamond.FacetCutAction.Replace) { replaceFunctions(facetAddress, functionSelectors); } else if (action == IDiamond.FacetCutAction.Remove) { removeFunctions(facetAddress, functionSelectors); } else { revert IncorrectFacetCutAction(uint8(action)); } } emit DiamondCut(_diamondCut, _init, _calldata); initializeDiamondCut(_init, _calldata); } function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { if (_facetAddress == address(0)) { revert CannotAddSelectorsToZeroAddress(_functionSelectors); } DiamondStorage storage ds = diamondStorage(); uint16 selectorCount = uint16(ds.selectors.length); enforceHasContractCode(_facetAddress, "LibDiamondCut: Add facet has no code"); for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.facetAddressAndSelectorPosition[selector].facetAddress; if (oldFacetAddress != address(0)) { revert CannotAddFunctionToDiamondThatAlreadyExists(selector); } ds.facetAddressAndSelectorPosition[selector] = FacetAddressAndSelectorPosition(_facetAddress, selectorCount); ds.selectors.push(selector); selectorCount++; } } function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { DiamondStorage storage ds = diamondStorage(); if (_facetAddress == address(0)) { revert CannotReplaceFunctionsFromFacetWithZeroAddress(_functionSelectors); } enforceHasContractCode(_facetAddress, "LibDiamondCut: Replace facet has no code"); for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.facetAddressAndSelectorPosition[selector].facetAddress; // can't replace immutable functions -- functions defined directly in the diamond in this case if (oldFacetAddress == address(this)) { revert CannotReplaceImmutableFunction(selector); } if (oldFacetAddress == _facetAddress) { revert CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet(selector); } if (oldFacetAddress == address(0)) { revert CannotReplaceFunctionThatDoesNotExists(selector); } // replace old facet address ds.facetAddressAndSelectorPosition[selector].facetAddress = _facetAddress; } } function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { DiamondStorage storage ds = diamondStorage(); uint256 selectorCount = ds.selectors.length; if (_facetAddress != address(0)) { revert RemoveFacetAddressMustBeZeroAddress(_facetAddress); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; FacetAddressAndSelectorPosition memory oldFacetAddressAndSelectorPosition = ds.facetAddressAndSelectorPosition[ selector ]; if (oldFacetAddressAndSelectorPosition.facetAddress == address(0)) { revert CannotRemoveFunctionThatDoesNotExist(selector); } // can't remove immutable functions -- functions defined directly in the diamond if (oldFacetAddressAndSelectorPosition.facetAddress == address(this)) { revert CannotRemoveImmutableFunction(selector); } // replace selector with last selector selectorCount--; if (oldFacetAddressAndSelectorPosition.selectorPosition != selectorCount) { bytes4 lastSelector = ds.selectors[selectorCount]; ds.selectors[oldFacetAddressAndSelectorPosition.selectorPosition] = lastSelector; ds.facetAddressAndSelectorPosition[lastSelector].selectorPosition = oldFacetAddressAndSelectorPosition .selectorPosition; } // delete last selector ds.selectors.pop(); delete ds.facetAddressAndSelectorPosition[selector]; } } function initializeDiamondCut(address _init, bytes memory _calldata) internal { if (_init == address(0)) { return; } enforceHasContractCode(_init, "LibDiamondCut: _init address has no code"); (bool success, bytes memory error) = _init.delegatecall(_calldata); if (!success) { if (error.length > 0) { // bubble up error /// @solidity memory-safe-assembly assembly { let returndata_size := mload(error) revert(add(32, error), returndata_size) } } else { revert InitializationFunctionReverted(_init, _calldata); } } } function enforceHasContractCode(address _contract, string memory _errorMessage) internal view { uint256 contractSize; assembly { contractSize := extcodesize(_contract) } if (contractSize == 0) { revert NoBytecodeAtAddress(_contract, _errorMessage); } } }
{
"optimizer": {
"runs": 200,
"enabled": true
},
"evmVersion": "cancun",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"internalType":"struct IDiamond.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"init","type":"address"},{"internalType":"bytes","name":"initCalldata","type":"bytes"}],"internalType":"struct DiamondArgs","name":"_args","type":"tuple"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotAddFunctionToDiamondThatAlreadyExists","type":"error"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"name":"CannotAddSelectorsToZeroAddress","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotRemoveFunctionThatDoesNotExist","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotRemoveImmutableFunction","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotReplaceFunctionThatDoesNotExists","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet","type":"error"},{"inputs":[{"internalType":"bytes4[]","name":"_selectors","type":"bytes4[]"}],"name":"CannotReplaceFunctionsFromFacetWithZeroAddress","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_selector","type":"bytes4"}],"name":"CannotReplaceImmutableFunction","type":"error"},{"inputs":[{"internalType":"bytes4","name":"_functionSelector","type":"bytes4"}],"name":"FunctionNotFound","type":"error"},{"inputs":[{"internalType":"uint8","name":"_action","type":"uint8"}],"name":"IncorrectFacetCutAction","type":"error"},{"inputs":[{"internalType":"address","name":"_initializationContractAddress","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"InitializationFunctionReverted","type":"error"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"name":"NoBytecodeAtAddress","type":"error"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"name":"NoSelectorsProvidedForFacetForCut","type":"error"},{"inputs":[{"internalType":"address","name":"_facetAddress","type":"address"}],"name":"RemoveFacetAddressMustBeZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamond.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"indexed":false,"internalType":"struct IDiamond.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
6080604052604051610fe9380380610fe983398101604081905261002291610a60565b805161002d9061004d565b61004682826020015183604001516100ce60201b60201c565b5050610e58565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f80546001600160a01b031981166001600160a01b038481169182179093556040515f80516020610f35833981519152939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f5b8351811015610226575f8482815181106100ec576100ec610c0e565b60200260200101516040015190505f85838151811061010d5761010d610c0e565b60200260200101515f0151905081515f0361014b5760405163e767f91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b5f86848151811061015e5761015e610c0e565b60200260200101516020015190505f600281111561017e5761017e610c22565b81600281111561019057610190610c22565b036101a45761019f8284610271565b61021b565b60018160028111156101b8576101b8610c22565b036101c75761019f8284610417565b60028160028111156101db576101db610c22565b036101ea5761019f828461059b565b8060028111156101fc576101fc610c22565b604051633ff4d20f60e11b815260ff9091166004820152602401610142565b5050506001016100d0565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161025a93929190610c64565b60405180910390a161026c828261080f565b505050565b6001600160a01b03821661029a57806040516302b8da0760e21b81526004016101429190610d6e565b5f80516020610fa183398151915254604080516060810190915260248082525f80516020610f3583398151915292916102dd91869190610f5560208301396108d1565b5f5b8351811015610410575f8482815181106102fb576102fb610c0e565b6020908102919091018101516001600160e01b031981165f908152918690526040909120549091506001600160a01b031680156103575760405163ebbf5d0760e01b81526001600160e01b031983166004820152602401610142565b6040805180820182526001600160a01b03808a16825261ffff80881660208085019182526001600160e01b031988165f9081528b8252958620945185549251909316600160a01b026001600160b01b0319909216929093169190911717909155600180880180549182018155835291206008820401805460e085901c60046007909416939093026101000a92830263ffffffff9093021916919091179055836103ff81610dce565b945050600190920191506102df9050565b5050505050565b5f80516020610f358339815191526001600160a01b03831661044e578160405163cd98a96f60e01b81526004016101429190610d6e565b61047083604051806060016040528060288152602001610fc1602891396108d1565b5f5b8251811015610595575f83828151811061048e5761048e610c0e565b6020908102919091018101516001600160e01b031981165f908152918590526040909120549091506001600160a01b03163081036104eb57604051632901806d60e11b81526001600160e01b031983166004820152602401610142565b856001600160a01b0316816001600160a01b03160361052957604051631ac6ce8d60e11b81526001600160e01b031983166004820152602401610142565b6001600160a01b03811661055c57604051637479f93960e01b81526001600160e01b031983166004820152602401610142565b506001600160e01b0319165f90815260208390526040902080546001600160a01b0319166001600160a01b038616179055600101610472565b50505050565b5f80516020610fa1833981519152545f80516020610f35833981519152906001600160a01b038416156105ec5760405163d091bc8160e01b81526001600160a01b0385166004820152602401610142565b5f5b8351811015610410575f84828151811061060a5761060a610c0e565b6020908102919091018101516001600160e01b031981165f9081528683526040908190208151808301909252546001600160a01b038116808352600160a01b90910461ffff16938201939093529092509061068457604051637a08a22d60e01b81526001600160e01b031983166004820152602401610142565b8051306001600160a01b03909116036106bc57604051630df5fd6160e31b81526001600160e01b031983166004820152602401610142565b836106c681610dee565b94505083816020015161ffff16146107a0575f8560010185815481106106ee576106ee610c0e565b905f5260205f2090600891828204019190066004029054906101000a900460e01b90508086600101836020015161ffff168154811061072f5761072f610c0e565b5f91825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c92909202939093179055838201516001600160e01b03199390931681529087905260409020805461ffff60a01b1916600160a01b61ffff909316929092029190911790555b846001018054806107b3576107b3610e03565b5f828152602080822060085f1990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b0319909316815291859052506040902080546001600160b01b03191690556001016105ee565b6001600160a01b038216610821575050565b61084382604051806060016040528060288152602001610f79602891396108d1565b5f80836001600160a01b03168360405161085d9190610e17565b5f60405180830381855af49150503d805f8114610895576040519150601f19603f3d011682016040523d82523d5f602084013e61089a565b606091505b509150915081610595578051156108b45780518082602001fd5b838360405163192105d760e01b8152600401610142929190610e2d565b813b5f81900361026c57828260405163919834b960e01b8152600401610142929190610e2d565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561092e5761092e6108f8565b60405290565b604051601f8201601f191681016001600160401b038111828210171561095c5761095c6108f8565b604052919050565b5f6001600160401b0382111561097c5761097c6108f8565b5060051b60200190565b80516001600160a01b038116811461099c575f80fd5b919050565b5f606082840312156109b1575f80fd5b6109b961090c565b90506109c482610986565b81526109d260208301610986565b602082015260408201516001600160401b038111156109ef575f80fd5b8201601f810184136109ff575f80fd5b80516001600160401b03811115610a1857610a186108f8565b610a2b601f8201601f1916602001610934565b818152856020838501011115610a3f575f80fd5b8160208401602083015e5f6020838301015280604085015250505092915050565b5f8060408385031215610a71575f80fd5b82516001600160401b03811115610a86575f80fd5b8301601f81018513610a96575f80fd5b8051610aa9610aa482610964565b610934565b8082825260208201915060208360051b850101925087831115610aca575f80fd5b602084015b83811015610bd85780516001600160401b03811115610aec575f80fd5b85016060818b03601f19011215610b01575f80fd5b610b0961090c565b610b1560208301610986565b8152604082015160038110610b28575f80fd5b602082015260608201516001600160401b03811115610b45575f80fd5b6020818401019250508a601f830112610b5c575f80fd5b8151610b6a610aa482610964565b8082825260208201915060208360051b86010192508d831115610b8b575f80fd5b6020850194505b82851015610bc25784516001600160e01b031981168114610bb1575f80fd5b825260209485019490910190610b92565b6040840152505084525060209283019201610acf565b506020870151909550925050506001600160401b03811115610bf8575f80fd5b610c04858286016109a1565b9150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f606082016060835280865180835260808501915060808160051b8601019250602088015f5b82811015610d3f57868503607f19018452815180516001600160a01b031686526020810151606087019060038110610cd057634e487b7160e01b5f52602160045260245ffd5b8060208901525060408201519150606060408801528082518083526080890191506020840193505f92505b80831015610d275783516001600160e01b03191682526020938401936001939093019290910190610cfb565b50965050506020938401939190910190600101610c8a565b5050506001600160a01b0386166020850152508281036040840152610d648185610c36565b9695505050505050565b602080825282518282018190525f918401906040840190835b81811015610daf5783516001600160e01b031916835260209384019390920191600101610d87565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b5f61ffff821661ffff8103610de557610de5610dba565b60010192915050565b5f81610dfc57610dfc610dba565b505f190190565b634e487b7160e01b5f52603160045260245ffd5b5f82518060208501845e5f920191825250919050565b6001600160a01b03831681526040602082018190525f90610e5090830184610c36565b949350505050565b60d180610e645f395ff3fe608060405236600a57005b5f80356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602081905260409091205481906001600160a01b031680607e57604051630a82dd7360e31b81526001600160e01b03195f3516600482015260240160405180910390fd5b365f80375f80365f845af43d5f803e8080156097573d5ff35b3d5ffdfea26469706673582212200b5b4fbb3e250a7fffd7ce0198fc56ee1e95667f5e4cf997118e0d524693b40664736f6c634300081a0033c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c4c69624469616d6f6e644375743a2041646420666163657420686173206e6f20636f64654c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f6465c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d4c69624469616d6f6e644375743a205265706c61636520666163657420686173206e6f20636f6465000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005e0000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000004a0000000000000000000000000221ffb180ad01213ff882ab7de9c75e23f9efa630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000011f931c1c000000000000000000000000000000000000000000000000000000000000000000000000000000006793de5e5a329be514b51184db13639dc7ccf8dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000000000000000000000000000014f1cbae37f765614655967afc51b544b81437490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000028da5cb5b00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000000000000000000000000000447d902da96a22727d0b53f215d0c387fe1ae11400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000861fac5c800000000000000000000000000000000000000000000000000000000ae52c569000000000000000000000000000000000000000000000000000000009a06be0800000000000000000000000000000000000000000000000000000000409a1e8a000000000000000000000000000000000000000000000000000000009b372b2b00000000000000000000000000000000000000000000000000000000d5d7ff3c00000000000000000000000000000000000000000000000000000000dfa7f1da000000000000000000000000000000000000000000000000000000000d392cd900000000000000000000000000000000000000000000000000000000000000000000000000000000155c0c3cde438a3d10bd38f3257cd8d17b8b3cff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003216d5108000000000000000000000000000000000000000000000000000000000d8aea8200000000000000000000000000000000000000000000000000000000bf4e593600000000000000000000000000000000000000000000000000000000000000000000000000000000a1d0027ca4c0cb79f9403d06a29470abc7b0a468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405236600a57005b5f80356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c602081905260409091205481906001600160a01b031680607e57604051630a82dd7360e31b81526001600160e01b03195f3516600482015260240160405180910390fd5b365f80375f80365f845af43d5f803e8080156097573d5ff35b3d5ffdfea26469706673582212200b5b4fbb3e250a7fffd7ce0198fc56ee1e95667f5e4cf997118e0d524693b40664736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005e0000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000004a0000000000000000000000000221ffb180ad01213ff882ab7de9c75e23f9efa630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000011f931c1c000000000000000000000000000000000000000000000000000000000000000000000000000000006793de5e5a329be514b51184db13639dc7ccf8dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a70000000000000000000000000000000000000000000000000000000000000000000000000000000014f1cbae37f765614655967afc51b544b81437490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000028da5cb5b00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000000000000000000000000000447d902da96a22727d0b53f215d0c387fe1ae11400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000861fac5c800000000000000000000000000000000000000000000000000000000ae52c569000000000000000000000000000000000000000000000000000000009a06be0800000000000000000000000000000000000000000000000000000000409a1e8a000000000000000000000000000000000000000000000000000000009b372b2b00000000000000000000000000000000000000000000000000000000d5d7ff3c00000000000000000000000000000000000000000000000000000000dfa7f1da000000000000000000000000000000000000000000000000000000000d392cd900000000000000000000000000000000000000000000000000000000000000000000000000000000155c0c3cde438a3d10bd38f3257cd8d17b8b3cff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003216d5108000000000000000000000000000000000000000000000000000000000d8aea8200000000000000000000000000000000000000000000000000000000bf4e593600000000000000000000000000000000000000000000000000000000000000000000000000000000a1d0027ca4c0cb79f9403d06a29470abc7b0a468000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _diamondCut (tuple[]):
Arg [1] : facetAddress (address): 0x221ffB180AD01213FF882ab7DE9c75E23F9efA63
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0x1f931c1
Arg [1] : facetAddress (address): 0x6793De5E5a329bE514B51184Db13639DC7ccf8dd
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0x01ffc9a
Arg [1] : facetAddress (address): 0x14F1CbAE37F765614655967aFC51b544b8143749
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0xf2fde38
Arg [1] : facetAddress (address): 0x447d902da96A22727d0B53F215D0C387fe1AE114
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0x0d392cd
Arg [1] : facetAddress (address): 0x155C0c3Cde438a3D10bD38f3257CD8d17b8B3cfF
Arg [2] : action (uint8): 0
Arg [3] : functionSelectors (bytes4[]): 0xbf4e593
Arg [1] : _args (tuple):
Arg [1] : owner (address): 0xa1d0027Ca4C0CB79f9403d06A29470abC7b0a468
Arg [2] : init (address): 0x0000000000000000000000000000000000000000
Arg [3] : initCalldata (bytes): 0x
-----Encoded View---------------
51 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000000000000000000000000000000000000000005e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000260
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000320
Arg [7] : 00000000000000000000000000000000000000000000000000000000000004a0
Arg [8] : 000000000000000000000000221ffb180ad01213ff882ab7de9c75e23f9efa63
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [12] : 1f931c1c00000000000000000000000000000000000000000000000000000000
Arg [13] : 0000000000000000000000006793de5e5a329be514b51184db13639dc7ccf8dd
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [16] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [17] : cdffacc600000000000000000000000000000000000000000000000000000000
Arg [18] : 52ef6b2c00000000000000000000000000000000000000000000000000000000
Arg [19] : adfca15e00000000000000000000000000000000000000000000000000000000
Arg [20] : 7a0ed62700000000000000000000000000000000000000000000000000000000
Arg [21] : 01ffc9a700000000000000000000000000000000000000000000000000000000
Arg [22] : 00000000000000000000000014f1cbae37f765614655967afc51b544b8143749
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [24] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [25] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [26] : 8da5cb5b00000000000000000000000000000000000000000000000000000000
Arg [27] : f2fde38b00000000000000000000000000000000000000000000000000000000
Arg [28] : 000000000000000000000000447d902da96a22727d0b53f215d0c387fe1ae114
Arg [29] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [31] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [32] : 61fac5c800000000000000000000000000000000000000000000000000000000
Arg [33] : ae52c56900000000000000000000000000000000000000000000000000000000
Arg [34] : 9a06be0800000000000000000000000000000000000000000000000000000000
Arg [35] : 409a1e8a00000000000000000000000000000000000000000000000000000000
Arg [36] : 9b372b2b00000000000000000000000000000000000000000000000000000000
Arg [37] : d5d7ff3c00000000000000000000000000000000000000000000000000000000
Arg [38] : dfa7f1da00000000000000000000000000000000000000000000000000000000
Arg [39] : 0d392cd900000000000000000000000000000000000000000000000000000000
Arg [40] : 000000000000000000000000155c0c3cde438a3d10bd38f3257cd8d17b8b3cff
Arg [41] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [42] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [43] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [44] : 216d510800000000000000000000000000000000000000000000000000000000
Arg [45] : 0d8aea8200000000000000000000000000000000000000000000000000000000
Arg [46] : bf4e593600000000000000000000000000000000000000000000000000000000
Arg [47] : 000000000000000000000000a1d0027ca4c0cb79f9403d06a29470abc7b0a468
Arg [48] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [49] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [50] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.