Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 439 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Safe Transfer Fr... | 24604716 | 2 days ago | IN | 0 ETH | 0.00000657 | ||||
| Safe Transfer Fr... | 24604716 | 2 days ago | IN | 0 ETH | 0.00000924 | ||||
| Safe Transfer Fr... | 24604715 | 2 days ago | IN | 0 ETH | 0.00001129 | ||||
| Safe Transfer Fr... | 24596567 | 3 days ago | IN | 0 ETH | 0.00001184 | ||||
| Safe Transfer Fr... | 24587755 | 4 days ago | IN | 0 ETH | 0.00000862 | ||||
| Safe Transfer Fr... | 24572002 | 7 days ago | IN | 0 ETH | 0.0000112 | ||||
| Safe Transfer Fr... | 24550799 | 10 days ago | IN | 0 ETH | 0.00000657 | ||||
| Safe Transfer Fr... | 24550799 | 10 days ago | IN | 0 ETH | 0.00001129 | ||||
| Safe Transfer Fr... | 24550667 | 10 days ago | IN | 0 ETH | 0.00000862 | ||||
| Safe Transfer Fr... | 24536806 | 12 days ago | IN | 0 ETH | 0.00001724 | ||||
| Safe Transfer Fr... | 24532037 | 12 days ago | IN | 0 ETH | 0.00001147 | ||||
| Safe Transfer Fr... | 24522841 | 13 days ago | IN | 0 ETH | 0.00001119 | ||||
| Safe Transfer Fr... | 24522629 | 13 days ago | IN | 0 ETH | 0.0000139 | ||||
| Safe Transfer Fr... | 24501001 | 17 days ago | IN | 0 ETH | 0.00000862 | ||||
| Safe Transfer Fr... | 24477697 | 20 days ago | IN | 0 ETH | 0.0000448 | ||||
| Safe Transfer Fr... | 24472276 | 21 days ago | IN | 0 ETH | 0.00000862 | ||||
| Safe Transfer Fr... | 24468559 | 21 days ago | IN | 0 ETH | 0.00000862 | ||||
| Approve | 24460448 | 22 days ago | IN | 0 ETH | 0.00000222 | ||||
| Safe Transfer Fr... | 24435896 | 26 days ago | IN | 0 ETH | 0.00001314 | ||||
| Safe Transfer Fr... | 24341039 | 39 days ago | IN | 0 ETH | 0.00002586 | ||||
| Safe Transfer Fr... | 24337242 | 39 days ago | IN | 0 ETH | 0.00000924 | ||||
| Safe Transfer Fr... | 24337236 | 39 days ago | IN | 0 ETH | 0.00001129 | ||||
| Safe Transfer Fr... | 24329445 | 40 days ago | IN | 0 ETH | 0.00001129 | ||||
| Safe Transfer Fr... | 24322524 | 41 days ago | IN | 0 ETH | 0.00000924 | ||||
| Safe Transfer Fr... | 24322498 | 41 days ago | IN | 0 ETH | 0.00000924 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 18889752 | 801 days ago | 2.482 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
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 Name:
MomentsAsia365
Compiler Version
v0.8.22+commit.4fc1097e
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**************************************************************\
* Diamond contract authored by Bling Artist Lab
* Version 0.1.0
*
* Adapted from work by Nick Mudge
* <nick@perfectabstractions.com> (https://twitter.com/mudgen)
*
* This contract is part of a project which adheres to
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/**************************************************************/
import { GlobalState } from "./libraries/GlobalState.sol";
import { LibDiamond } from "./libraries/LibDiamond.sol";
import { IDiamondCut } from "./interfaces/IDiamondCut.sol";
contract MomentsAsia365 {
constructor(address _diamondCutFacet) payable {
GlobalState.getState().owner = msg.sender;
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), "");
}
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 = address(bytes20(ds.facets[msg.sig]));
require(facet != address(0), "Diamond: Function does not exist");
// 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: MIT
pragma solidity ^0.8.0;
/******************************************************************************\
* Author: Nick Mudge <nick@perfectabstractions.com> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/
interface IDiamondCut {
enum FacetCutAction {Add, Replace, Remove}
// 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;
event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**************************************************************\
* Global Storage Library for NFT Smart Contracts
* Authored by Bling Artist Lab
* Version 0.2.1
*
* This library is designed to provide diamond storage and
* shared functionality to all facets of a diamond used for an
* NFT collection.
/**************************************************************/
library GlobalState {
bytes32 constant DIAMOND_STORAGE_POSITION = keccak256("globalstate.storage");
struct state {
address owner;
mapping(address => bool) admins;
bool paused;
}
/**
* @dev Return stored state struct.
*/
function getState() internal pure returns (state storage _state) {
bytes32 position = DIAMOND_STORAGE_POSITION;
assembly {
_state.slot := position
}
}
// GLOBAL FUNCTIONS //
/**
* @dev Returns true if provided address is an admin or the
* contract owner.
*/
function isAdmin(address _addr) internal view returns (bool) {
state storage s = getState();
return s.owner == _addr || s.admins[_addr];
}
/**
* @dev Reverts if caller is not an admin or contract owner.
*/
function requireCallerIsAdmin() internal view {
require(isAdmin(msg.sender), "GlobalState: caller is not admin or owner");
}
/**
* @dev Reverts if contract is paused.
*/
function requireContractIsNotPaused() internal view {
require(!getState().paused || isAdmin(msg.sender), "GlobalState: contract is paused");
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**************************************************************\
* Diamond Library authored by Bling Artist Lab
* Version 0.1.0
*
* Adapted from work by Nick Mudge
* <nick@perfectabstractions.com> (https://twitter.com/mudgen)
*
* This contract is part of a project which adheres to
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/**************************************************************/
import { IDiamondCut } from "../interfaces/IDiamondCut.sol";
library LibDiamond {
bytes32 constant DIAMOND_STORAGE_POSITION = keccak256("diamond.standard.diamond.storage");
struct DiamondStorage {
// maps function selectors to the facets that execute the functions.
// and maps the selectors to their position in the selectorSlots array.
// func selector => address facet, selector position
mapping(bytes4 => bytes32) facets;
// array of slots of function selectors.
// each slot holds 8 function selectors.
mapping(uint256 => bytes32) selectorSlots;
// The number of function selectors in selectorSlots
uint16 selectorCount;
}
function diamondStorage() internal pure returns (DiamondStorage storage ds) {
bytes32 position = DIAMOND_STORAGE_POSITION;
assembly {
ds.slot := position
}
}
event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata);
bytes32 constant CLEAR_ADDRESS_MASK = bytes32(uint256(0xffffffffffffffffffffffff));
bytes32 constant CLEAR_SELECTOR_MASK = bytes32(uint256(0xffffffff << 224));
// Internal function version of diamondCut
// This code is almost the same as the external diamondCut,
// except it is using 'Facet[] memory _diamondCut' instead of
// 'Facet[] calldata _diamondCut'.
// The code is duplicated to prevent copying calldata to memory which
// causes an error for a two dimensional array.
function diamondCut(
IDiamondCut.FacetCut[] memory _diamondCut,
address _init,
bytes memory _calldata
) internal {
DiamondStorage storage ds = diamondStorage();
uint256 originalSelectorCount = ds.selectorCount;
uint256 selectorCount = originalSelectorCount;
bytes32 selectorSlot;
// Check if last selector slot is not full
// "selectorCount & 7" is a gas efficient modulo by eight "selectorCount % 8"
if (selectorCount & 7 > 0) {
// get last selectorSlot
// "selectorSlot >> 3" is a gas efficient division by 8 "selectorSlot / 8"
selectorSlot = ds.selectorSlots[selectorCount >> 3];
}
// loop through diamond cut
for (uint256 facetIndex; facetIndex < _diamondCut.length; facetIndex++) {
(selectorCount, selectorSlot) = addReplaceRemoveFacetSelectors(
selectorCount,
selectorSlot,
_diamondCut[facetIndex].facetAddress,
_diamondCut[facetIndex].action,
_diamondCut[facetIndex].functionSelectors
);
}
if (selectorCount != originalSelectorCount) {
ds.selectorCount = uint16(selectorCount);
}
// If last selector slot is not full
// "selectorCount & 7" is a gas efficient modulo by eight "selectorCount % 8"
if (selectorCount & 7 > 0) {
// "selectorSlot >> 3" is a gas efficient division by 8 "selectorSlot / 8"
ds.selectorSlots[selectorCount >> 3] = selectorSlot;
}
emit DiamondCut(_diamondCut, _init, _calldata);
initializeDiamondCut(_init, _calldata);
}
function addReplaceRemoveFacetSelectors(
uint256 _selectorCount,
bytes32 _selectorSlot,
address _newFacetAddress,
IDiamondCut.FacetCutAction _action,
bytes4[] memory _selectors
) internal returns (uint256, bytes32) {
DiamondStorage storage ds = diamondStorage();
require(_selectors.length > 0, "LibDiamondCut: No selectors in facet to cut");
if (_action == IDiamondCut.FacetCutAction.Add) {
enforceHasContractCode(_newFacetAddress, "LibDiamondCut: Add facet has no code");
for (uint256 selectorIndex; selectorIndex < _selectors.length; selectorIndex++) {
bytes4 selector = _selectors[selectorIndex];
bytes32 oldFacet = ds.facets[selector];
require(address(bytes20(oldFacet)) == address(0), "LibDiamondCut: Can't add function that already exists");
// add facet for selector
ds.facets[selector] = bytes20(_newFacetAddress) | bytes32(_selectorCount);
// "_selectorCount & 7" is a gas efficient modulo by eight "_selectorCount % 8"
// " << 5 is the same as multiplying by 32 ( * 32)
uint256 selectorInSlotPosition = (_selectorCount & 7) << 5;
// clear selector position in slot and add selector
_selectorSlot = (_selectorSlot & ~(CLEAR_SELECTOR_MASK >> selectorInSlotPosition)) | (bytes32(selector) >> selectorInSlotPosition);
// if slot is full then write it to storage
if (selectorInSlotPosition == 224) {
// "_selectorSlot >> 3" is a gas efficient division by 8 "_selectorSlot / 8"
ds.selectorSlots[_selectorCount >> 3] = _selectorSlot;
_selectorSlot = 0;
}
_selectorCount++;
}
} else if (_action == IDiamondCut.FacetCutAction.Replace) {
enforceHasContractCode(_newFacetAddress, "LibDiamondCut: Replace facet has no code");
for (uint256 selectorIndex; selectorIndex < _selectors.length; selectorIndex++) {
bytes4 selector = _selectors[selectorIndex];
bytes32 oldFacet = ds.facets[selector];
address oldFacetAddress = address(bytes20(oldFacet));
// only useful if immutable functions exist
require(oldFacetAddress != address(this), "LibDiamondCut: Can't replace immutable function");
require(oldFacetAddress != _newFacetAddress, "LibDiamondCut: Can't replace function with same function");
require(oldFacetAddress != address(0), "LibDiamondCut: Can't replace function that doesn't exist");
// replace old facet address
ds.facets[selector] = (oldFacet & CLEAR_ADDRESS_MASK) | bytes20(_newFacetAddress);
}
} else if (_action == IDiamondCut.FacetCutAction.Remove) {
require(_newFacetAddress == address(0), "LibDiamondCut: Remove facet address must be address(0)");
// "_selectorCount >> 3" is a gas efficient division by 8 "_selectorCount / 8"
uint256 selectorSlotCount = _selectorCount >> 3;
// "_selectorCount & 7" is a gas efficient modulo by eight "_selectorCount % 8"
uint256 selectorInSlotIndex = _selectorCount & 7;
for (uint256 selectorIndex; selectorIndex < _selectors.length; selectorIndex++) {
if (_selectorSlot == 0) {
// get last selectorSlot
selectorSlotCount--;
_selectorSlot = ds.selectorSlots[selectorSlotCount];
selectorInSlotIndex = 7;
} else {
selectorInSlotIndex--;
}
bytes4 lastSelector;
uint256 oldSelectorsSlotCount;
uint256 oldSelectorInSlotPosition;
// adding a block here prevents stack too deep error
{
bytes4 selector = _selectors[selectorIndex];
bytes32 oldFacet = ds.facets[selector];
require(address(bytes20(oldFacet)) != address(0), "LibDiamondCut: Can't remove function that doesn't exist");
// only useful if immutable functions exist
require(address(bytes20(oldFacet)) != address(this), "LibDiamondCut: Can't remove immutable function");
// replace selector with last selector in ds.facets
// gets the last selector
// " << 5 is the same as multiplying by 32 ( * 32)
lastSelector = bytes4(_selectorSlot << (selectorInSlotIndex << 5));
if (lastSelector != selector) {
// update last selector slot position info
ds.facets[lastSelector] = (oldFacet & CLEAR_ADDRESS_MASK) | bytes20(ds.facets[lastSelector]);
}
delete ds.facets[selector];
uint256 oldSelectorCount = uint16(uint256(oldFacet));
// "oldSelectorCount >> 3" is a gas efficient division by 8 "oldSelectorCount / 8"
oldSelectorsSlotCount = oldSelectorCount >> 3;
// "oldSelectorCount & 7" is a gas efficient modulo by eight "oldSelectorCount % 8"
// " << 5 is the same as multiplying by 32 ( * 32)
oldSelectorInSlotPosition = (oldSelectorCount & 7) << 5;
}
if (oldSelectorsSlotCount != selectorSlotCount) {
bytes32 oldSelectorSlot = ds.selectorSlots[oldSelectorsSlotCount];
// clears the selector we are deleting and puts the last selector in its place.
oldSelectorSlot =
(oldSelectorSlot & ~(CLEAR_SELECTOR_MASK >> oldSelectorInSlotPosition)) |
(bytes32(lastSelector) >> oldSelectorInSlotPosition);
// update storage with the modified slot
ds.selectorSlots[oldSelectorsSlotCount] = oldSelectorSlot;
} else {
// clears the selector we are deleting and puts the last selector in its place.
_selectorSlot =
(_selectorSlot & ~(CLEAR_SELECTOR_MASK >> oldSelectorInSlotPosition)) |
(bytes32(lastSelector) >> oldSelectorInSlotPosition);
}
if (selectorInSlotIndex == 0) {
delete ds.selectorSlots[selectorSlotCount];
_selectorSlot = 0;
}
}
_selectorCount = selectorSlotCount * 8 + selectorInSlotIndex;
} else {
revert("LibDiamondCut: Incorrect FacetCutAction");
}
return (_selectorCount, _selectorSlot);
}
function initializeDiamondCut(address _init, bytes memory _calldata) internal {
if (_init == address(0)) {
require(_calldata.length == 0, "LibDiamondCut: _init is address(0) but_calldata is not empty");
} else {
require(_calldata.length > 0, "LibDiamondCut: _calldata is empty but _init is not address(0)");
if (_init != address(this)) {
enforceHasContractCode(_init, "LibDiamondCut: _init address has no code");
}
(bool success, bytes memory error) = _init.delegatecall(_calldata);
if (!success) {
if (error.length > 0) {
// bubble up the error
revert(string(error));
} else {
revert("LibDiamondCut: _init function reverted");
}
}
}
}
function enforceHasContractCode(address _contract, string memory _errorMessage) internal view {
uint256 contractSize;
assembly {
contractSize := extcodesize(_contract)
}
require(contractSize > 0, _errorMessage);
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_diamondCutFacet","type":"address"}],"stateMutability":"payable","type":"constructor"},{"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"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526040516110ad3803806110ad83398101604081905261002291610ca3565b7faa709a43047aeb827383da101508a48a6e491c932ae90ae7a02fb2e72a0c0e4a80546001600160a01b03191633179055604080516001808252818301909252600091602082015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161006a5750506040805160018082528183019092529192506000919060208083019080368337019050509050631f931c1c60e01b816000815181106100d9576100d9610cd3565b6001600160e01b031990921660209283029190910182015260408051606081019091526001600160a01b038516815290810160008152602001828152508260008151811061012957610129610cd3565b60200260200101819052506101558260006040518060200160405280600081525061015d60201b60201c565b505050610ef7565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131e546000805160206110198339815191529061ffff8116908190600090600716156101ba5750600381901c60009081526001840160205260409020545b60005b875181101561023d5761023083838a84815181106101dd576101dd610cd3565b6020026020010151600001518b85815181106101fb576101fb610cd3565b6020026020010151602001518c868151811061021957610219610cd3565b6020026020010151604001516102c960201b60201c565b90935091506001016101bd565b508282146102595760028401805461ffff191661ffff84161790555b600782161561027b57600382901c600090815260018501602052604090208190555b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738787876040516102ae93929190610d4f565b60405180910390a16102c08686610a6f565b50505050505050565b60008080600080516020611019833981519152905060008451116103485760405162461bcd60e51b815260206004820152602b60248201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660448201526a1858d95d081d1bc818dd5d60aa1b60648201526084015b60405180910390fd5b600085600281111561035c5761035c610ce9565b036104ca576103838660405180606001604052806024815260200161103960249139610c82565b60005b84518110156104c45760008582815181106103a3576103a3610cd3565b6020908102919091018101516001600160e01b03198116600090815291859052604090912054909150606081901c156104445760405162461bcd60e51b815260206004820152603560248201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60448201527f6e207468617420616c7265616479206578697374730000000000000000000000606482015260840161033f565b6001600160e01b031980831660008181526020879052604090206001600160601b031960608d901b168e17905560e060058e901b811692831c199c909c1690821c179a8190036104a85760038c901c600090815260018601602052604081209b909b555b8b6104b281610e68565b9c505060019093019250610386915050565b50610a63565b60018560028111156104de576104de610ce9565b036106da576105058660405180606001604052806028815260200161108560289139610c82565b60005b84518110156104c457600085828151811061052557610525610cd3565b6020908102919091018101516001600160e01b03198116600090815291859052604090912054909150606081901c3081036105ba5760405162461bcd60e51b815260206004820152602f60248201527f4c69624469616d6f6e644375743a2043616e2774207265706c61636520696d6d60448201526e3aba30b1363290333ab731ba34b7b760891b606482015260840161033f565b896001600160a01b0316816001600160a01b03160361062f5760405162461bcd60e51b81526020600482015260386024820152600080516020610ff983398151915260448201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000606482015260840161033f565b6001600160a01b0381166106995760405162461bcd60e51b81526020600482015260386024820152600080516020610ff983398151915260448201527f6374696f6e207468617420646f65736e27742065786973740000000000000000606482015260840161033f565b506001600160e01b031990911660009081526020849052604090206001600160601b03919091166001600160601b031960608a901b16179055600101610508565b60028560028111156106ee576106ee610ce9565b03610a0b576001600160a01b038616156107705760405162461bcd60e51b815260206004820152603660248201527f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260448201527f657373206d757374206265206164647265737328302900000000000000000000606482015260840161033f565b600388901c6007891660005b86518110156109eb5760008a90036107b8578261079881610e81565b60008181526001870160205260409020549b509350600792506107c69050565b816107c281610e81565b9250505b6000806000808a85815181106107de576107de610cd3565b6020908102919091018101516001600160e01b031981166000908152918a9052604090912054909150606081901c61087e5760405162461bcd60e51b815260206004820152603760248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360448201527f74696f6e207468617420646f65736e2774206578697374000000000000000000606482015260840161033f565b30606082901c036108e85760405162461bcd60e51b815260206004820152602e60248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560448201526d3a30b1363290333ab731ba34b7b760911b606482015260840161033f565b600587901b8f901b94506001600160e01b031980861690831614610939576001600160e01b03198516600090815260208a90526040902080546001600160601b0319166001600160601b0383161790555b6001600160e01b031991909116600090815260208990526040812055600381901c611fff16925060051b60e016905085821461099e576000828152600188016020526040902080546001600160e01b031980841c19909116908516831c1790556109c2565b80836001600160e01b031916901c816001600160e01b031960001b901c198e16179c505b846000036109e057600086815260018801602052604081208190559c505b50505060010161077c565b50806109f8836008610e98565b610a029190610eb5565b99505050610a63565b60405162461bcd60e51b815260206004820152602760248201527f4c69624469616d6f6e644375743a20496e636f727265637420466163657443756044820152663a20b1ba34b7b760c91b606482015260840161033f565b50959694955050505050565b6001600160a01b038216610af657805115610af25760405162461bcd60e51b815260206004820152603c60248201527f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860448201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000606482015260840161033f565b5050565b6000815111610b6d5760405162461bcd60e51b815260206004820152603d60248201527f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460448201527f7920627574205f696e6974206973206e6f742061646472657373283029000000606482015260840161033f565b6001600160a01b0382163014610b9f57610b9f8260405180606001604052806028815260200161105d60289139610c82565b600080836001600160a01b031683604051610bba9190610ec8565b600060405180830381855af49150503d8060008114610bf5576040519150601f19603f3d011682016040523d82523d6000602084013e610bfa565b606091505b509150915081610c7c57805115610c25578060405162461bcd60e51b815260040161033f9190610ee4565b60405162461bcd60e51b815260206004820152602660248201527f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e2072656044820152651d995c9d195960d21b606482015260840161033f565b50505050565b813b8181610c7c5760405162461bcd60e51b815260040161033f9190610ee4565b600060208284031215610cb557600080fd5b81516001600160a01b0381168114610ccc57600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b83811015610d1a578181015183820152602001610d02565b50506000910152565b60008151808452610d3b816020860160208601610cff565b601f01601f19169290920160200192915050565b60006060808301606084528087518083526080925060808601915060808160051b8701016020808b0160005b84811015610e2257898403607f19018652815180516001600160a01b03168552838101518986019060038110610dc157634e487b7160e01b600052602160045260246000fd5b868601526040918201519186018a905281519081905290840190600090898701905b80831015610e0d5783516001600160e01b0319168252928601926001929092019190860190610de3565b50978501979550505090820190600101610d7b565b50506001600160a01b038a16908801528681036040880152610e448189610d23565b9a9950505050505050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201610e7a57610e7a610e52565b5060010190565b600081610e9057610e90610e52565b506000190190565b8082028115828204841417610eaf57610eaf610e52565b92915050565b80820180821115610eaf57610eaf610e52565b60008251610eda818460208701610cff565b9190910192915050565b602081526000610ccc6020830184610d23565b60f480610f056000396000f3fe608060405236600a57005b600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c6020819052604090912054819060601c80609b5760405162461bcd60e51b815260206004820181905260248201527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374604482015260640160405180910390fd5b3660008037600080366000845af43d6000803e80801560b9573d6000f35b3d6000fdfea26469706673582212202df7c30d37ccf905f12fccbc1f02e294a4a4e058ccdd2f93b0fb9e200c090f7064736f6c634300081600334c69624469616d6f6e644375743a2043616e2774207265706c6163652066756ec8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c4c69624469616d6f6e644375743a2041646420666163657420686173206e6f20636f64654c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a205265706c61636520666163657420686173206e6f20636f6465000000000000000000000000c860e857c9f7621a2d6f0fb56d356ad776bb7299
Deployed Bytecode
0x608060405236600a57005b600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c6020819052604090912054819060601c80609b5760405162461bcd60e51b815260206004820181905260248201527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374604482015260640160405180910390fd5b3660008037600080366000845af43d6000803e80801560b9573d6000f35b3d6000fdfea26469706673582212202df7c30d37ccf905f12fccbc1f02e294a4a4e058ccdd2f93b0fb9e200c090f7064736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c860e857c9f7621a2d6f0fb56d356ad776bb7299
-----Decoded View---------------
Arg [0] : _diamondCutFacet (address): 0xc860e857c9F7621A2D6F0Fb56D356aD776Bb7299
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c860e857c9f7621a2d6f0fb56d356ad776bb7299
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 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.