Source Code (Proxy)
Latest 25 from a total of 38 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Fee Collecto... | 42611997 | 39 days ago | IN | 0 MON | 0.00919048 | ||||
| Register Affilia... | 42611964 | 39 days ago | IN | 0 MON | 0.00805147 | ||||
| Deposit For | 41134434 | 46 days ago | IN | 0 MON | 0.02516756 | ||||
| Set Fee Collecto... | 39459053 | 54 days ago | IN | 0 MON | 0.0072626 | ||||
| Set Fee Collecto... | 39433482 | 54 days ago | IN | 0 MON | 0.00889949 | ||||
| Grant Role | 39432689 | 54 days ago | IN | 0 MON | 0.01017499 | ||||
| Grant Role | 39431610 | 54 days ago | IN | 0 MON | 0.00984995 | ||||
| Register Party B | 39431604 | 54 days ago | IN | 0 MON | 0.01516699 | ||||
| Register Party B | 39431599 | 54 days ago | IN | 0 MON | 0.01223066 | ||||
| Register Party B | 39431593 | 54 days ago | IN | 0 MON | 0.0173483 | ||||
| Register Affilia... | 39431587 | 54 days ago | IN | 0 MON | 0.00999033 | ||||
| Grant Role | 38492992 | 58 days ago | IN | 0 MON | 0.00816124 | ||||
| Grant Role | 38492987 | 58 days ago | IN | 0 MON | 0.00818709 | ||||
| Set Collateral | 38490599 | 58 days ago | IN | 0 MON | 0.01283929 | ||||
| Grant Role | 38490254 | 58 days ago | IN | 0 MON | 0.00672983 | ||||
| Set Balance Limi... | 38489996 | 58 days ago | IN | 0 MON | 0.00802472 | ||||
| Set Liquidation ... | 38489991 | 58 days ago | IN | 0 MON | 0.00808096 | ||||
| Set Liquidator S... | 38489986 | 58 days ago | IN | 0 MON | 0.00803544 | ||||
| Set Force Cancel... | 38489982 | 58 days ago | IN | 0 MON | 0.00804989 | ||||
| Set Force Close ... | 38489977 | 58 days ago | IN | 0 MON | 0.00810842 | ||||
| Set Force Close ... | 38489972 | 58 days ago | IN | 0 MON | 0.01115125 | ||||
| Set Force Cancel... | 38489966 | 58 days ago | IN | 0 MON | 0.00814568 | ||||
| Set Deallocate C... | 38489961 | 58 days ago | IN | 0 MON | 0.00819894 | ||||
| Add Symbols | 38489956 | 58 days ago | IN | 0 MON | 0.00633559 | ||||
| Set Invalid Brid... | 38489951 | 58 days ago | IN | 0 MON | 0.00818071 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Diamond
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.18; /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535 /******************************************************************************/ import { LibDiamond } from "./libraries/LibDiamond.sol"; import { IDiamondCut } from "./facets/DiamondCut/IDiamondCut.sol"; contract Diamond { receive() external payable {} 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. 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; 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()) } } } }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity >=0.8.18; /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535 /******************************************************************************/ interface IDiamondCut { // Add=0, Replace=1, Remove=2 enum FacetCutAction { Add, Replace, Remove } 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: GPL-3.0-or-later pragma solidity >=0.8.18; /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535 /******************************************************************************/ // A loupe is a small magnifying glass used to look at diamonds. // These functions look at diamonds interface IDiamondLoupe { 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: GPL-3.0-or-later
pragma solidity >=0.8.18;
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: GPL-3.0-or-later pragma solidity >=0.8.18; /******************************************************************************\ * Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen) * EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535 /******************************************************************************/ import { IDiamondCut } from "../facets/DiamondCut/IDiamondCut.sol"; import { IDiamondLoupe } from "../facets/DiamondLoup/IDiamondLoupe.sol"; import { IERC165 } from "../interfaces/IERC165.sol"; library LibDiamond { bytes32 public 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 enforceIsOwnerOrContract() internal view { require(msg.sender == diamondStorage().contractOwner || msg.sender == address(this), "LibDiamond: Must be contract or owner"); } function enforceIsContractOwner() internal view { require(msg.sender == diamondStorage().contractOwner, "LibDiamond: Must be contract owner"); } 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++) { 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("LibDiamondCut: Incorrect FacetCutAction"); } } emit DiamondCut(_diamondCut, _init, _calldata); initializeDiamondCut(_init, _calldata); } function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut"); DiamondStorage storage ds = diamondStorage(); uint16 selectorCount = uint16(ds.selectors.length); require(_facetAddress != address(0), "LibDiamondCut: Add facet can't be address(0)"); 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; require(oldFacetAddress == address(0), "LibDiamondCut: Can't add function that already exists"); ds.facetAddressAndSelectorPosition[selector] = FacetAddressAndSelectorPosition(_facetAddress, selectorCount); ds.selectors.push(selector); selectorCount++; } } function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut"); DiamondStorage storage ds = diamondStorage(); require(_facetAddress != address(0), "LibDiamondCut: Replace facet can't be address(0)"); 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 require(oldFacetAddress != address(this), "LibDiamondCut: Can't replace immutable function"); require(oldFacetAddress != _facetAddress, "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.facetAddressAndSelectorPosition[selector].facetAddress = _facetAddress; } } function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { require(_functionSelectors.length > 0, "LibDiamondCut: No selectors in facet to cut"); DiamondStorage storage ds = diamondStorage(); uint256 selectorCount = ds.selectors.length; require(_facetAddress == address(0), "LibDiamondCut: Remove facet address must be address(0)"); for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) { bytes4 selector = _functionSelectors[selectorIndex]; FacetAddressAndSelectorPosition memory oldFacetAddressAndSelectorPosition = ds.facetAddressAndSelectorPosition[selector]; require(oldFacetAddressAndSelectorPosition.facetAddress != address(0), "LibDiamondCut: Can't remove function that doesn't exist"); // can't remove immutable functions -- functions defined directly in the diamond require(oldFacetAddressAndSelectorPosition.facetAddress != address(this), "LibDiamondCut: Can't remove immutable function."); // 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)) { 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); } }
{
"metadata": {
"bytecodeHash": "none"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"viaIR": true,
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}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"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806001600160401b03601f610eab38819003918201601f191684019183831185841017610349578085926040948552833981010312610bf35761004e602061004784610c36565b9301610c36565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131f80546001600160a01b039485166001600160a01b03198216811790925591939091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36100be610c17565b916001835260005b60208110610bcb57506100d7610c17565b60018152602036818301376307e4c70760e21b6100f382610c4a565b526100fc610bf8565b6001600160a01b03909216825260006020830152604082015261011e83610c4a565b5261012882610c4a565b50604051906020820190811182821017610349576040526000808252825b8051821015610a4957602061015b8383610c6d565b5101516003811015610a33578061043b57506001600160a01b0361017f8383610c6d565b51511690604061018f8483610c6d565b5101519061019f82511515610cd0565b61ffff600080516020610e8b83398151915254169083156103e1576102026101c5610bf8565b602481527f4c69624469616d6f6e644375743a2041646420666163657420686173206e6f20602082015263636f646560e01b604082015285610d60565b6000915b83518310156103ca576001600160e01b03196102228486610c6d565b51166000818152600080516020610e6b83398151915260205260409020546001600160a01b031661035f576102b8610258610c17565b87815261ffff9390931660208085018281526000858152600080516020610e6b83398151915290925260409091209451855491516001600160b01b03199092166001600160a01b03919091161760a09190911b61ffff60a01b1617909355565b600080516020610e8b833981519152549068010000000000000000821015610349576102fa8260016103179401600080516020610e8b83398151915255610d30565b90919063ffffffff83549160031b9260e01c831b921b1916179055565b61ffff811461033357600161032d910192610c81565b91610206565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152603560248201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60448201527f6e207468617420616c72656164792065786973747300000000000000000000006064820152608490fd5b5094939150506103da9150610c81565b9091610146565b60405162461bcd60e51b815260206004820152602c60248201527f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260448201526b65206164647265737328302960a01b6064820152608490fd5b600181036106c857506001600160a01b036104568383610c6d565b5151169260406104668484610c6d565b5101519161047683511515610cd0565b841561066a576104c8610487610bf8565b602881527f4c69624469616d6f6e644375743a205265706c61636520666163657420686173602082015267206e6f20636f646560c01b604082015286610d60565b60005b835181101561065c576001600160e01b03196104e78286610c6d565b51169081600052600080516020610e6b8339815191528060205260018060a01b03604060002054163081146105ff578881146105a6571561054d576000928352602052604090912080546001600160a01b0319168717905561054890610c81565b6104cb565b60405162461bcd60e51b81526020600482015260386024820152600080516020610e4b83398151915260448201527f6374696f6e207468617420646f65736e277420657869737400000000000000006064820152608490fd5b60405162461bcd60e51b81526020600482015260386024820152600080516020610e4b83398151915260448201527f6374696f6e20776974682073616d652066756e6374696f6e00000000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152602f60248201527f4c69624469616d6f6e644375743a2043616e2774207265706c61636520696d6d60448201526e3aba30b1363290333ab731ba34b7b760891b6064820152608490fd5b509350916103da9150610c81565b60405162461bcd60e51b815260206004820152603060248201527f4c69624469616d6f6e644375743a205265706c6163652066616365742063616e60448201526f2774206265206164647265737328302960801b6064820152608490fd5b6002036109de576001600160a01b036106e18383610c6d565b5151169260406106f18484610c6d565b5101519161070183511515610cd0565b600080516020610e8b83398151915254946109735760005b835181101561065c576001600160e01b03196107358286610c6d565b51169081600052600080516020610e6b83398151915260205260406000209661075c610c17565b97546001600160a01b038116808a5260a09190911c61ffff1660208a0152156109085787516001600160a01b031630146108ab5780156103335760001901968761ffff60208301511603610830575b50600080516020610e8b8339815191525491821561081a5761081592600019016107d481610d30565b63ffffffff82549160031b1b19169055600080516020610e8b83398151915255600052600080516020610e6b83398151915260205260006040812055610c81565b610719565b634e487b7160e01b600052603160045260246000fd5b6108a59061ffff60206108428b610d30565b90549060031b1c60e01b9261085f846102fa858585015116610d30565b01516001600160e01b03199092166000908152600080516020610e6b83398151915260205260409020805461ffff60a01b19169190921660a01b61ffff60a01b16179055565b876107ab565b60405162461bcd60e51b815260206004820152602f60248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560448201526e3a30b1363290333ab731ba34b7b71760891b6064820152608490fd5b60405162461bcd60e51b815260206004820152603760248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360448201527f74696f6e207468617420646f65736e27742065786973740000000000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152603660248201527f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260448201527f657373206d7573742062652061646472657373283029000000000000000000006064820152608490fd5b60405162461bcd60e51b815260206004820152602760248201527f4c69624469616d6f6e644375743a20496e636f727265637420466163657443756044820152663a20b1ba34b7b760c91b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b8260405160608082018183528451809152608090818401926020838360051b8701019701936000915b838310610b3757877f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738880610ab68d60006020840152828103604084015285610c90565b0390a151610acc5760405160b99081610d928239f35b60405162461bcd60e51b815260206004820152603c60248201527f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860448201527f3029206275745f63616c6c64617461206973206e6f7420656d707479000000006064820152608490fd5b909192939497607f19878203018352885160018060a01b0381511682526020810151906003821015610a33576040916020840152015190826040820152602087848301928451809452019201906000905b808210610ba8575050506020806001929a01930193019194939290610a72565b82516001600160e01b031916845260209384019390920191600190910190610b88565b602090610bd6610bf8565b6000815260008382015260606040820152828287010152016100c6565b600080fd5b60405190606082016001600160401b0381118382101761034957604052565b60408051919082016001600160401b0381118382101761034957604052565b51906001600160a01b0382168203610bf357565b805115610c575760200190565b634e487b7160e01b600052603260045260246000fd5b8051821015610c575760209160051b010190565b60001981146103335760010190565b919082519283825260005b848110610cbc575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610c9b565b15610cd757565b60405162461bcd60e51b815260206004820152602b60248201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660448201526a1858d95d081d1bc818dd5d60aa1b6064820152608490fd5b90600080516020610e8b8339815191528054831015610c5757600052601c60206000208360031c019260021b1690565b3b15610d695750565b60405162461bcd60e51b815260206004820152908190610d8d906024830190610c90565b0390fdfe6080604052361560aa57600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c60205260408120546001600160a01b03168015606c57818091368280378136915af43d82803e156068573d90f35b3d90fd5b62461bcd60e51b6080526020608452602060a4527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f7420657869737460c45260646080fd5b00fea164736f6c6343000812000a4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756ec8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131cc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d000000000000000000000000f12239317e985f6772f86407608b166efa3e2f050000000000000000000000006d87fb6e54e9c8e18bc57decd9c772e4b323a300
Deployed Bytecode
0x6080604052361560aa57600080356001600160e01b03191681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c60205260408120546001600160a01b03168015606c57818091368280378136915af43d82803e156068573d90f35b3d90fd5b62461bcd60e51b6080526020608452602060a4527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f7420657869737460c45260646080fd5b00fea164736f6c6343000812000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f12239317e985f6772f86407608b166efa3e2f050000000000000000000000006d87fb6e54e9c8e18bc57decd9c772e4b323a300
-----Decoded View---------------
Arg [0] : _contractOwner (address): 0xf12239317e985f6772F86407608B166EfA3E2f05
Arg [1] : _diamondCutFacet (address): 0x6D87fb6e54E9C8E18Bc57DeCD9c772e4B323a300
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f12239317e985f6772f86407608b166efa3e2f05
Arg [1] : 0000000000000000000000006d87fb6e54e9c8e18bc57decd9c772e4b323a300
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$202,221.93
Net Worth in MON
Token Allocations
USDC
74.61%
USDT0
25.39%
Multichain Portfolio | 35 Chains
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.