Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Loading...
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.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xe2471dFB...1620a57F5 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
DiamondCutFacet
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.7.6;
pragma experimental ABIEncoderV2;
import "diamond-libraries/contracts/libraries/LibDiamond.sol";
import "diamond-libraries/contracts/libraries/LibOwnership.sol";
contract DiamondCutFacet is IDiamondCut {
/// @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 override {
LibOwnership.enforceIsContractOwner();
uint256 selectorCount =
LibDiamondStorage.diamondStorage().selectors.length;
for (
uint256 facetIndex;
facetIndex < _diamondCut.length;
facetIndex++
) {
FacetCut memory cut;
cut.action = _diamondCut[facetIndex].action;
cut.facetAddress = _diamondCut[facetIndex].facetAddress;
cut.functionSelectors = _diamondCut[facetIndex].functionSelectors;
selectorCount = LibDiamond.executeDiamondCut(selectorCount, cut);
}
emit DiamondCut(_diamondCut, _init, _calldata);
LibDiamond.initializeDiamondCut(_init, _calldata);
}
}// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.7.6;
pragma experimental ABIEncoderV2;
import "../interfaces/IDiamondCut.sol";
import "./LibDiamondStorage.sol";
library LibDiamond {
event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata);
// 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 {
uint256 selectorCount = LibDiamondStorage.diamondStorage().selectors.length;
for (uint256 facetIndex; facetIndex < _diamondCut.length; facetIndex++) {
selectorCount = executeDiamondCut(selectorCount, _diamondCut[facetIndex]);
}
emit DiamondCut(_diamondCut, _init, _calldata);
initializeDiamondCut(_init, _calldata);
}
// executeDiamondCut takes one single FacetCut action and executes it
// if FacetCutAction can't be identified, it reverts
function executeDiamondCut(uint256 selectorCount, IDiamondCut.FacetCut memory cut) internal returns (uint256) {
require(cut.functionSelectors.length > 0, "LibDiamond: No selectors in facet to cut");
if (cut.action == IDiamondCut.FacetCutAction.Add) {
require(cut.facetAddress != address(0), "LibDiamond: add facet address can't be address(0)");
enforceHasContractCode(cut.facetAddress, "LibDiamond: add facet must have code");
return _handleAddCut(selectorCount, cut);
}
if (cut.action == IDiamondCut.FacetCutAction.Replace) {
require(cut.facetAddress != address(0), "LibDiamond: remove facet address can't be address(0)");
enforceHasContractCode(cut.facetAddress, "LibDiamond: remove facet must have code");
return _handleReplaceCut(selectorCount, cut);
}
if (cut.action == IDiamondCut.FacetCutAction.Remove) {
require(cut.facetAddress == address(0), "LibDiamond: remove facet address must be address(0)");
return _handleRemoveCut(selectorCount, cut);
}
revert("LibDiamondCut: Incorrect FacetCutAction");
}
// _handleAddCut executes a cut with the type Add
// it reverts if the selector already exists
function _handleAddCut(uint256 selectorCount, IDiamondCut.FacetCut memory cut) internal returns (uint256) {
LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage();
for (uint256 selectorIndex; selectorIndex < cut.functionSelectors.length; selectorIndex++) {
bytes4 selector = cut.functionSelectors[selectorIndex];
address oldFacetAddress = ds.facets[selector].facetAddress;
require(oldFacetAddress == address(0), "LibDiamondCut: Can't add function that already exists");
ds.facets[selector] = LibDiamondStorage.Facet(
cut.facetAddress,
uint16(selectorCount)
);
ds.selectors.push(selector);
selectorCount++;
}
return selectorCount;
}
// _handleReplaceCut executes a cut with the type Replace
// it does not allow replacing immutable functions
// it does not allow replacing with the same function
// it does not allow replacing a function that does not exist
function _handleReplaceCut(uint256 selectorCount, IDiamondCut.FacetCut memory cut) internal returns (uint256) {
LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage();
for (uint256 selectorIndex; selectorIndex < cut.functionSelectors.length; selectorIndex++) {
bytes4 selector = cut.functionSelectors[selectorIndex];
address oldFacetAddress = ds.facets[selector].facetAddress;
// only useful if immutable functions exist
require(oldFacetAddress != address(this), "LibDiamondCut: Can't replace immutable function");
require(oldFacetAddress != cut.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.facets[selector].facetAddress = cut.facetAddress;
}
return selectorCount;
}
// _handleRemoveCut executes a cut with the type Remove
// for efficiency, the selector to be deleted is replaced with the last one and then the last one is popped
// it reverts if the function doesn't exist or it's immutable
function _handleRemoveCut(uint256 selectorCount, IDiamondCut.FacetCut memory cut) internal returns (uint256) {
LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage();
for (uint256 selectorIndex; selectorIndex < cut.functionSelectors.length; selectorIndex++) {
bytes4 selector = cut.functionSelectors[selectorIndex];
LibDiamondStorage.Facet memory oldFacet = ds.facets[selector];
require(oldFacet.facetAddress != address(0), "LibDiamondCut: Can't remove function that doesn't exist");
require(oldFacet.facetAddress != address(this), "LibDiamondCut: Can't remove immutable function.");
// replace selector with last selector
if (oldFacet.selectorPosition != selectorCount - 1) {
bytes4 lastSelector = ds.selectors[selectorCount - 1];
ds.selectors[oldFacet.selectorPosition] = lastSelector;
ds.facets[lastSelector].selectorPosition = oldFacet.selectorPosition;
}
// delete last selector
ds.selectors.pop();
delete ds.facets[selector];
selectorCount--;
}
return selectorCount;
}
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");
return;
}
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);
}
}// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.7.6;
pragma experimental ABIEncoderV2;
import "./LibDiamondStorage.sol";
library LibOwnership {
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
function setContractOwner(address _newOwner) internal {
LibDiamondStorage.DiamondStorage storage ds = LibDiamondStorage.diamondStorage();
address previousOwner = ds.contractOwner;
require(previousOwner != _newOwner, "Previous owner and new owner must be different");
ds.contractOwner = _newOwner;
emit OwnershipTransferred(previousOwner, _newOwner);
}
function contractOwner() internal view returns (address contractOwner_) {
contractOwner_ = LibDiamondStorage.diamondStorage().contractOwner;
}
function enforceIsContractOwner() view internal {
require(msg.sender == LibDiamondStorage.diamondStorage().contractOwner, "Must be contract owner");
}
modifier onlyOwner {
require(msg.sender == LibDiamondStorage.diamondStorage().contractOwner, "Must be contract owner");
_;
}
}// SPDX-License-Identifier: Apache-2.0
pragma solidity 0.7.6;
pragma experimental ABIEncoderV2;
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: Apache-2.0
pragma solidity 0.7.6;
pragma experimental ABIEncoderV2;
library LibDiamondStorage {
bytes32 constant DIAMOND_STORAGE_POSITION = keccak256("diamond.standard.diamond.storage");
struct Facet {
address facetAddress;
uint16 selectorPosition;
}
struct DiamondStorage {
// function selector => facet address and selector position in selectors array
mapping(bytes4 => Facet) facets;
bytes4[] selectors;
// ERC165
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
}
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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"},{"inputs":[{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"internalType":"struct IDiamondCut.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"internalType":"address","name":"_init","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"diamondCut","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
0x608060405234801561001057600080fd5b506112a8806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631f931c1c14610030575b600080fd5b61004361003e3660046109e3565b610045565b005b61004d6101f5565b6000610057610233565b60010154905060005b8581101561016d57610070610978565b87878381811061007c57fe5b905060200281019061008e91906111be565b61009f906040810190602001610ab5565b816020019060028111156100af57fe5b908160028111156100bc57fe5b9052508787838181106100cb57fe5b90506020028101906100dd91906111be565b6100eb9060208101906109c2565b6001600160a01b0316815287878381811061010257fe5b905060200281019061011491906111be565b610122906040810190611170565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060408201526101628382610257565b925050600101610060565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67386868686866040516101a5959493929190610b6f565b60405180910390a16101ed8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103ca92505050565b505050505050565b6101fd610233565b600301546001600160a01b031633146102315760405162461bcd60e51b815260040161022890611140565b60405180910390fd5b565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90565b6000808260400151511161027d5760405162461bcd60e51b815260040161022890610e9b565b60008260200151600281111561028f57fe5b14156102f35781516001600160a01b03166102bc5760405162461bcd60e51b815260040161022890610e03565b6102e2826000015160405180606001604052806024815260200161124f602491396104f4565b6102ec8383610515565b90506103c4565b60018260200151600281111561030557fe5b14156103625781516001600160a01b03166103325760405162461bcd60e51b815260040161022890610cf5565b6103588260000151604051806060016040528060278152602001611228602791396104f4565b6102ec8383610653565b60028260200151600281111561037457fe5b14156103ac5781516001600160a01b0316156103a25760405162461bcd60e51b815260040161022890610ee3565b6102ec838361076a565b60405162461bcd60e51b815260040161022890610e54565b92915050565b6001600160a01b0382166103fc578051156103f75760405162461bcd60e51b815260040161022890610d49565b6104f0565b600081511161041d5760405162461bcd60e51b815260040161022890610f36565b6001600160a01b038216301461044f5761044f82604051806060016040528060288152602001611200602891396104f4565b600080836001600160a01b03168360405161046a9190610b53565b600060405180830381855af49150503d80600081146104a5576040519150601f19603f3d011682016040523d82523d6000602084013e6104aa565b606091505b5091509150816104ed578051156104d5578060405162461bcd60e51b81526004016102289190610c7c565b60405162461bcd60e51b815260040161022890610caf565b50505b5050565b813b81816104ed5760405162461bcd60e51b81526004016102289190610c7c565b600080610520610233565b905060005b83604001515181101561064a5760008460400151828151811061054457fe5b6020908102919091018101516001600160e01b031981166000908152918590526040909120549091506001600160a01b031680156105945760405162461bcd60e51b815260040161022890610f93565b5060408051808201825286516001600160a01b03908116825261ffff89811660208085019182526001600160e01b0319871660009081528982529586209451855492516001600160a01b031990931694169390931761ffff60a01b1916600160a01b919092160217909155600180860180548083018255908452919092206008820401805463ffffffff60079093166004026101000a928302191660e09490941c91909102929092179091559485019401610525565b50929392505050565b60008061065e610233565b905060005b83604001515181101561064a5760008460400151828151811061068257fe5b6020908102919091018101516001600160e01b031981166000908152918590526040909120549091506001600160a01b0316308114156106d45760405162461bcd60e51b815260040161022890611045565b85516001600160a01b03828116911614156107015760405162461bcd60e51b815260040161022890610fe8565b6001600160a01b0381166107275760405162461bcd60e51b8152600401610228906110e3565b5084516001600160e01b031991909116600090815260208490526040902080546001600160a01b0319166001600160a01b03909216919091179055600101610663565b600080610775610233565b905060005b83604001515181101561064a5760008460400151828151811061079957fe5b6020908102919091018101516001600160e01b0319811660009081528583526040908190208151808301909252546001600160a01b038116808352600160a01b90910461ffff1693820193909352909250906108075760405162461bcd60e51b815260040161022890610da6565b80516001600160a01b03163014156108315760405162461bcd60e51b815260040161022890611094565b60018703816020015161ffff161461090657600084600101600189038154811061085757fe5b90600052602060002090600891828204019190066004029054906101000a900460e01b90508085600101836020015161ffff168154811061089457fe5b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c92909202939093179055838201516001600160e01b03199390931681529086905260409020805461ffff60a01b1916600160a01b61ffff909316929092029190911790555b8360010180548061091357fe5b600082815260208082206008600019948501908104909101805463ffffffff600460078516026101000a02191690559093556001600160e01b0319909416845290859052604090922080546001600160b01b031916905550949094019360010161077a565b6040805160608082018352600080835260208301529181019190915290565b80356001600160a01b03811681146109ae57600080fd5b919050565b8035600381106109ae57600080fd5b6000602082840312156109d3578081fd5b6109dc82610997565b9392505050565b6000806000806000606086880312156109fa578081fd5b853567ffffffffffffffff80821115610a11578283fd5b818801915088601f830112610a24578283fd5b813581811115610a32578384fd5b60208a818284028601011115610a46578485fd5b8084019850819750610a59818b01610997565b965060408a0135935082841115610a6e578485fd5b838a0193508a601f850112610a81578485fd5b8335915082821115610a91578485fd5b8a81838601011115610aa1578485fd5b979a96995094975050909401935090919050565b600060208284031215610ac6578081fd5b6109dc826109b3565b6001600160a01b03169052565b60008284526020808501945082825b85811015610b1e5781356001600160e01b03198116808214610b0b578586fd5b8852509582019590820190600101610aeb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251610b658184602087016111d3565b9190910192915050565b60608082528181018690526000906020608080850190828a028601018a855b8b811015610c4c57878303607f190184528135368e9003605e19018112610bb3578788fd5b8d016001600160a01b03610bc682610997565b168452610bd48682016109b3565b60038110610bde57fe5b8487015260408181013536839003601e19018112610bfa57898afd5b8201803567ffffffffffffffff811115610c12578a8bfd5b8881023603841315610c22578a8bfd5b8983880152610c368a8801828b8501610adc565b9789019796505050928601925050600101610b8e565b5050610c5a8387018a610acf565b8581036040870152610c6d81888a610b29565b9b9a5050505050505050505050565b6000602082528251806020840152610c9b8160408501602087016111d3565b601f01601f19169190910160400192915050565b60208082526026908201527f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e2072656040820152651d995c9d195960d21b606082015260800190565b60208082526034908201527f4c69624469616d6f6e643a2072656d6f766520666163657420616464726573736040820152732063616e2774206265206164647265737328302960601b606082015260800190565b6020808252603d908201527f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860408201527f302920627574205f63616c6c64617461206973206e6f7420656d707479000000606082015260800190565b60208082526037908201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360408201527f74696f6e207468617420646f65736e2774206578697374000000000000000000606082015260800190565b60208082526031908201527f4c69624469616d6f6e643a2061646420666163657420616464726573732063616040820152706e2774206265206164647265737328302960781b606082015260800190565b60208082526027908201527f4c69624469616d6f6e644375743a20496e636f727265637420466163657443756040820152663a20b1ba34b7b760c91b606082015260800190565b60208082526028908201527f4c69624469616d6f6e643a204e6f2073656c6563746f727320696e20666163656040820152671d081d1bc818dd5d60c21b606082015260800190565b60208082526033908201527f4c69624469616d6f6e643a2072656d6f76652066616365742061646472657373604082015272206d757374206265206164647265737328302960681b606082015260800190565b6020808252603d908201527f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460408201527f7920627574205f696e6974206973206e6f742061646472657373283029000000606082015260800190565b60208082526035908201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f6040820152746e207468617420616c72656164792065786973747360581b606082015260800190565b60208082526038908201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60408201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000606082015260800190565b6020808252602f908201527f4c69624469616d6f6e644375743a2043616e2774207265706c61636520696d6d60408201526e3aba30b1363290333ab731ba34b7b760891b606082015260800190565b6020808252602f908201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560408201526e3a30b1363290333ab731ba34b7b71760891b606082015260800190565b60208082526038908201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60408201527f6374696f6e207468617420646f65736e27742065786973740000000000000000606082015260800190565b60208082526016908201527526bab9ba1031329031b7b73a3930b1ba1037bbb732b960511b604082015260600190565b6000808335601e19843603018112611186578283fd5b83018035915067ffffffffffffffff8211156111a0578283fd5b60209081019250810236038213156111b757600080fd5b9250929050565b60008235605e19833603018112610b65578182fd5b60005b838110156111ee5781810151838201526020016111d6565b838111156104ed575050600091015256fe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e643a2072656d6f7665206661636574206d757374206861766520636f64654c69624469616d6f6e643a20616464206661636574206d757374206861766520636f6465a2646970667358221220ed001d8713fca2d0bc25bb04b5818044ce8e1acd9216d5955b13c9141f7a37c364736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80631f931c1c14610030575b600080fd5b61004361003e3660046109e3565b610045565b005b61004d6101f5565b6000610057610233565b60010154905060005b8581101561016d57610070610978565b87878381811061007c57fe5b905060200281019061008e91906111be565b61009f906040810190602001610ab5565b816020019060028111156100af57fe5b908160028111156100bc57fe5b9052508787838181106100cb57fe5b90506020028101906100dd91906111be565b6100eb9060208101906109c2565b6001600160a01b0316815287878381811061010257fe5b905060200281019061011491906111be565b610122906040810190611170565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060408201526101628382610257565b925050600101610060565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67386868686866040516101a5959493929190610b6f565b60405180910390a16101ed8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103ca92505050565b505050505050565b6101fd610233565b600301546001600160a01b031633146102315760405162461bcd60e51b815260040161022890611140565b60405180910390fd5b565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90565b6000808260400151511161027d5760405162461bcd60e51b815260040161022890610e9b565b60008260200151600281111561028f57fe5b14156102f35781516001600160a01b03166102bc5760405162461bcd60e51b815260040161022890610e03565b6102e2826000015160405180606001604052806024815260200161124f602491396104f4565b6102ec8383610515565b90506103c4565b60018260200151600281111561030557fe5b14156103625781516001600160a01b03166103325760405162461bcd60e51b815260040161022890610cf5565b6103588260000151604051806060016040528060278152602001611228602791396104f4565b6102ec8383610653565b60028260200151600281111561037457fe5b14156103ac5781516001600160a01b0316156103a25760405162461bcd60e51b815260040161022890610ee3565b6102ec838361076a565b60405162461bcd60e51b815260040161022890610e54565b92915050565b6001600160a01b0382166103fc578051156103f75760405162461bcd60e51b815260040161022890610d49565b6104f0565b600081511161041d5760405162461bcd60e51b815260040161022890610f36565b6001600160a01b038216301461044f5761044f82604051806060016040528060288152602001611200602891396104f4565b600080836001600160a01b03168360405161046a9190610b53565b600060405180830381855af49150503d80600081146104a5576040519150601f19603f3d011682016040523d82523d6000602084013e6104aa565b606091505b5091509150816104ed578051156104d5578060405162461bcd60e51b81526004016102289190610c7c565b60405162461bcd60e51b815260040161022890610caf565b50505b5050565b813b81816104ed5760405162461bcd60e51b81526004016102289190610c7c565b600080610520610233565b905060005b83604001515181101561064a5760008460400151828151811061054457fe5b6020908102919091018101516001600160e01b031981166000908152918590526040909120549091506001600160a01b031680156105945760405162461bcd60e51b815260040161022890610f93565b5060408051808201825286516001600160a01b03908116825261ffff89811660208085019182526001600160e01b0319871660009081528982529586209451855492516001600160a01b031990931694169390931761ffff60a01b1916600160a01b919092160217909155600180860180548083018255908452919092206008820401805463ffffffff60079093166004026101000a928302191660e09490941c91909102929092179091559485019401610525565b50929392505050565b60008061065e610233565b905060005b83604001515181101561064a5760008460400151828151811061068257fe5b6020908102919091018101516001600160e01b031981166000908152918590526040909120549091506001600160a01b0316308114156106d45760405162461bcd60e51b815260040161022890611045565b85516001600160a01b03828116911614156107015760405162461bcd60e51b815260040161022890610fe8565b6001600160a01b0381166107275760405162461bcd60e51b8152600401610228906110e3565b5084516001600160e01b031991909116600090815260208490526040902080546001600160a01b0319166001600160a01b03909216919091179055600101610663565b600080610775610233565b905060005b83604001515181101561064a5760008460400151828151811061079957fe5b6020908102919091018101516001600160e01b0319811660009081528583526040908190208151808301909252546001600160a01b038116808352600160a01b90910461ffff1693820193909352909250906108075760405162461bcd60e51b815260040161022890610da6565b80516001600160a01b03163014156108315760405162461bcd60e51b815260040161022890611094565b60018703816020015161ffff161461090657600084600101600189038154811061085757fe5b90600052602060002090600891828204019190066004029054906101000a900460e01b90508085600101836020015161ffff168154811061089457fe5b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c92909202939093179055838201516001600160e01b03199390931681529086905260409020805461ffff60a01b1916600160a01b61ffff909316929092029190911790555b8360010180548061091357fe5b600082815260208082206008600019948501908104909101805463ffffffff600460078516026101000a02191690559093556001600160e01b0319909416845290859052604090922080546001600160b01b031916905550949094019360010161077a565b6040805160608082018352600080835260208301529181019190915290565b80356001600160a01b03811681146109ae57600080fd5b919050565b8035600381106109ae57600080fd5b6000602082840312156109d3578081fd5b6109dc82610997565b9392505050565b6000806000806000606086880312156109fa578081fd5b853567ffffffffffffffff80821115610a11578283fd5b818801915088601f830112610a24578283fd5b813581811115610a32578384fd5b60208a818284028601011115610a46578485fd5b8084019850819750610a59818b01610997565b965060408a0135935082841115610a6e578485fd5b838a0193508a601f850112610a81578485fd5b8335915082821115610a91578485fd5b8a81838601011115610aa1578485fd5b979a96995094975050909401935090919050565b600060208284031215610ac6578081fd5b6109dc826109b3565b6001600160a01b03169052565b60008284526020808501945082825b85811015610b1e5781356001600160e01b03198116808214610b0b578586fd5b8852509582019590820190600101610aeb565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251610b658184602087016111d3565b9190910192915050565b60608082528181018690526000906020608080850190828a028601018a855b8b811015610c4c57878303607f190184528135368e9003605e19018112610bb3578788fd5b8d016001600160a01b03610bc682610997565b168452610bd48682016109b3565b60038110610bde57fe5b8487015260408181013536839003601e19018112610bfa57898afd5b8201803567ffffffffffffffff811115610c12578a8bfd5b8881023603841315610c22578a8bfd5b8983880152610c368a8801828b8501610adc565b9789019796505050928601925050600101610b8e565b5050610c5a8387018a610acf565b8581036040870152610c6d81888a610b29565b9b9a5050505050505050505050565b6000602082528251806020840152610c9b8160408501602087016111d3565b601f01601f19169190910160400192915050565b60208082526026908201527f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e2072656040820152651d995c9d195960d21b606082015260800190565b60208082526034908201527f4c69624469616d6f6e643a2072656d6f766520666163657420616464726573736040820152732063616e2774206265206164647265737328302960601b606082015260800190565b6020808252603d908201527f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860408201527f302920627574205f63616c6c64617461206973206e6f7420656d707479000000606082015260800190565b60208082526037908201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360408201527f74696f6e207468617420646f65736e2774206578697374000000000000000000606082015260800190565b60208082526031908201527f4c69624469616d6f6e643a2061646420666163657420616464726573732063616040820152706e2774206265206164647265737328302960781b606082015260800190565b60208082526027908201527f4c69624469616d6f6e644375743a20496e636f727265637420466163657443756040820152663a20b1ba34b7b760c91b606082015260800190565b60208082526028908201527f4c69624469616d6f6e643a204e6f2073656c6563746f727320696e20666163656040820152671d081d1bc818dd5d60c21b606082015260800190565b60208082526033908201527f4c69624469616d6f6e643a2072656d6f76652066616365742061646472657373604082015272206d757374206265206164647265737328302960681b606082015260800190565b6020808252603d908201527f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460408201527f7920627574205f696e6974206973206e6f742061646472657373283029000000606082015260800190565b60208082526035908201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f6040820152746e207468617420616c72656164792065786973747360581b606082015260800190565b60208082526038908201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60408201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000606082015260800190565b6020808252602f908201527f4c69624469616d6f6e644375743a2043616e2774207265706c61636520696d6d60408201526e3aba30b1363290333ab731ba34b7b760891b606082015260800190565b6020808252602f908201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560408201526e3a30b1363290333ab731ba34b7b71760891b606082015260800190565b60208082526038908201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60408201527f6374696f6e207468617420646f65736e27742065786973740000000000000000606082015260800190565b60208082526016908201527526bab9ba1031329031b7b73a3930b1ba1037bbb732b960511b604082015260600190565b6000808335601e19843603018112611186578283fd5b83018035915067ffffffffffffffff8211156111a0578283fd5b60209081019250810236038213156111b757600080fd5b9250929050565b60008235605e19833603018112610b65578182fd5b60005b838110156111ee5781810151838201526020016111d6565b838111156104ed575050600091015256fe4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e643a2072656d6f7665206661636574206d757374206861766520636f64654c69624469616d6f6e643a20616464206661636574206d757374206861766520636f6465a2646970667358221220ed001d8713fca2d0bc25bb04b5818044ce8e1acd9216d5955b13c9141f7a37c364736f6c63430007060033
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
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.