Overview
ETH Balance
ETH Value
$0.29 (@ $2,863.82/ETH)Latest 25 from a total of 4,684 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Project Conf... | 27055681 | 31 days ago | IN | 0 ETH | 0.00000881 | ||||
| Mint | 27047080 | 32 days ago | IN | 0.0162 ETH | 0.00001116 | ||||
| Set Project Conf... | 27047031 | 32 days ago | IN | 0 ETH | 0.00000321 | ||||
| Mint | 27046270 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046194 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046179 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046171 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046160 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046152 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046120 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046113 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046096 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046078 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046061 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046056 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046040 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046028 | 32 days ago | IN | 0.018 ETH | 0.000012 | ||||
| Mint | 27046017 | 32 days ago | IN | 0.036 ETH | 0.00002036 | ||||
| Mint | 27045952 | 32 days ago | IN | 0.009 ETH | 0.00000777 | ||||
| Mint | 27045947 | 32 days ago | IN | 0.009 ETH | 0.00000777 | ||||
| Mint | 27045938 | 32 days ago | IN | 0.009 ETH | 0.00000777 | ||||
| Mint | 27045930 | 32 days ago | IN | 0.009 ETH | 0.00000777 | ||||
| Mint | 27045926 | 32 days ago | IN | 0.009 ETH | 0.00000777 | ||||
| Mint | 27045905 | 32 days ago | IN | 0.0018 ETH | 0.00000447 | ||||
| Mint | 27016707 | 33 days ago | IN | 0.018 ETH | 0.000012 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 27055681 | 31 days ago | 0 ETH | ||||
| 27055681 | 31 days ago | 0 ETH | ||||
| 27055681 | 31 days ago | 0 ETH | ||||
| 27055681 | 31 days ago | 0 ETH | ||||
| 27055681 | 31 days ago | 0 ETH | ||||
| 27055681 | 31 days ago | 0 ETH | ||||
| 27055681 | 31 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0.0009 ETH | ||||
| 27047080 | 32 days ago | 0.0153 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0 ETH | ||||
| 27047080 | 32 days ago | 0.0162 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ElementDrop
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import "./libs/Ownable.sol";
contract ElementDrop is Ownable {
// methodID -> implementation
mapping(bytes4 => address) private implementations;
event MethodUpdated(bytes4 indexed methodID, address oldImpl, address newImpl);
function registerMethods(address impl, bytes4[] calldata methodIDs) external onlyOwner {
if (impl != address(0)) {
require(impl.code.length > 0, "Invalid implementation address");
}
for (uint256 i = 0; i < methodIDs.length; i++) {
bytes4 methodID = methodIDs[i];
address oldImpl = implementations[methodID];
implementations[methodID] = impl;
emit MethodUpdated(methodID, oldImpl, impl);
}
}
function getMethodImplementation(bytes4 methodID) external view returns (address) {
return implementations[methodID];
}
receive() external payable {}
fallback() external payable {
address impl = implementations[msg.sig];
require(impl != address(0), "Not implemented method.");
assembly {
calldatacopy(0, 0, calldatasize())
if delegatecall(gas(), impl, 0, calldatasize(), 0, 0) {
returndatacopy(0, 0, returndatasize())
return(0, returndatasize())
}
returndatacopy(0, 0, returndatasize())
revert(0, returndatasize())
}
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
import "../storage/LibOwnableStorage.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable {
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(tx.origin);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return LibOwnableStorage.getStorage().owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == msg.sender, "Ownable: caller is not the owner");
_;
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) private {
LibOwnableStorage.Storage storage stor = LibOwnableStorage.getStorage();
address oldOwner = stor.owner;
stor.owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
library LibOwnableStorage {
uint256 constant STORAGE_ID_OWNABLE = 1 << 128;
struct Storage {
address owner;
}
/// @dev Get the storage bucket for this contract.
function getStorage() internal pure returns (Storage storage stor) {
assembly { stor.slot := STORAGE_ID_OWNABLE }
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes4","name":"methodID","type":"bytes4"},{"indexed":false,"internalType":"address","name":"oldImpl","type":"address"},{"indexed":false,"internalType":"address","name":"newImpl","type":"address"}],"name":"MethodUpdated","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"},{"inputs":[{"internalType":"bytes4","name":"methodID","type":"bytes4"}],"name":"getMethodImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"impl","type":"address"},{"internalType":"bytes4[]","name":"methodIDs","type":"bytes4[]"}],"name":"registerMethods","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b5061001a3261001f565b61008d565b600061003361008560201b6104171760201c565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b600160801b90565b6105d58061009c6000396000f3fe6080604052600436106100435760003560e01c80634f333d35146100e65780638da5cb5b14610108578063b31de22514610141578063f2fde38b146101815761004a565b3661004a57005b600080356001600160e01b0319168152602081905260409020546001600160a01b0316806100bf5760405162461bcd60e51b815260206004820152601760248201527f4e6f7420696d706c656d656e746564206d6574686f642e00000000000000000060448201526064015b60405180910390fd5b3660008037600080366000845af4156100dc573d6000803e3d6000f35b3d6000803e3d6000fd5b3480156100f257600080fd5b50610106610101366004610490565b6101a1565b005b34801561011457600080fd5b50600160801b546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b34801561014d57600080fd5b5061012561015c366004610516565b6001600160e01b0319166000908152602081905260409020546001600160a01b031690565b34801561018d57600080fd5b5061010661019c366004610547565b61033a565b336101b7600160801b546001600160a01b031690565b6001600160a01b03161461020d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016100b6565b6001600160a01b03831615610276576000836001600160a01b03163b116102765760405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e2061646472657373000060448201526064016100b6565b60005b8181101561033457600083838381811061029557610295610562565b90506020020160208101906102aa9190610516565b6001600160e01b031981166000818152602081815260409182902080546001600160a01b031981166001600160a01b038c811691821790935584519290911680835292820152939450927f9f13558563f4afe89886ace8e041189e663ef4e4d1dad61cd64cc601a89b3725910160405180910390a25050808061032c90610578565b915050610279565b50505050565b33610350600160801b546001600160a01b031690565b6001600160a01b0316146103a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016100b6565b6001600160a01b03811661040b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100b6565b6104148161041f565b50565b600160801b90565b600160801b80546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b80356001600160a01b038116811461048b57600080fd5b919050565b6000806000604084860312156104a557600080fd5b6104ae84610474565b9250602084013567ffffffffffffffff808211156104cb57600080fd5b818601915086601f8301126104df57600080fd5b8135818111156104ee57600080fd5b8760208260051b850101111561050357600080fd5b6020830194508093505050509250925092565b60006020828403121561052857600080fd5b81356001600160e01b03198116811461054057600080fd5b9392505050565b60006020828403121561055957600080fd5b61054082610474565b634e487b7160e01b600052603260045260246000fd5b60006001820161059857634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f887fe76b13d3f0f1d871110a01ad442141377eec7d72fe788b8576e8c0cf57f64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106100435760003560e01c80634f333d35146100e65780638da5cb5b14610108578063b31de22514610141578063f2fde38b146101815761004a565b3661004a57005b600080356001600160e01b0319168152602081905260409020546001600160a01b0316806100bf5760405162461bcd60e51b815260206004820152601760248201527f4e6f7420696d706c656d656e746564206d6574686f642e00000000000000000060448201526064015b60405180910390fd5b3660008037600080366000845af4156100dc573d6000803e3d6000f35b3d6000803e3d6000fd5b3480156100f257600080fd5b50610106610101366004610490565b6101a1565b005b34801561011457600080fd5b50600160801b546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b34801561014d57600080fd5b5061012561015c366004610516565b6001600160e01b0319166000908152602081905260409020546001600160a01b031690565b34801561018d57600080fd5b5061010661019c366004610547565b61033a565b336101b7600160801b546001600160a01b031690565b6001600160a01b03161461020d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016100b6565b6001600160a01b03831615610276576000836001600160a01b03163b116102765760405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420696d706c656d656e746174696f6e2061646472657373000060448201526064016100b6565b60005b8181101561033457600083838381811061029557610295610562565b90506020020160208101906102aa9190610516565b6001600160e01b031981166000818152602081815260409182902080546001600160a01b031981166001600160a01b038c811691821790935584519290911680835292820152939450927f9f13558563f4afe89886ace8e041189e663ef4e4d1dad61cd64cc601a89b3725910160405180910390a25050808061032c90610578565b915050610279565b50505050565b33610350600160801b546001600160a01b031690565b6001600160a01b0316146103a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016100b6565b6001600160a01b03811661040b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100b6565b6104148161041f565b50565b600160801b90565b600160801b80546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b80356001600160a01b038116811461048b57600080fd5b919050565b6000806000604084860312156104a557600080fd5b6104ae84610474565b9250602084013567ffffffffffffffff808211156104cb57600080fd5b818601915086601f8301126104df57600080fd5b8135818111156104ee57600080fd5b8760208260051b850101111561050357600080fd5b6020830194508093505050509250925092565b60006020828403121561052857600080fd5b81356001600160e01b03198116811461054057600080fd5b9392505050565b60006020828403121561055957600080fd5b61054082610474565b634e487b7160e01b600052603260045260246000fd5b60006001820161059857634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f887fe76b13d3f0f1d871110a01ad442141377eec7d72fe788b8576e8c0cf57f64736f6c63430008110033
Loading...
Loading
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.