More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x24ae7daff1e39a15d02f2fad9ebe341d5c75f78c4d9a2534b0f5ca999eb55bdc | Batch Cancel ERC... | (pending) | 13 hrs ago | IN | 0 ETH | (Pending) | |||
Batch Cancel ERC... | 20254300 | 3 hrs ago | IN | 0 ETH | 0.00009199 | ||||
Cancel ERC721Ord... | 20253886 | 4 hrs ago | IN | 0 ETH | 0.00009168 | ||||
Buy ERC1155Ex | 20253754 | 5 hrs ago | IN | 0.00034 ETH | 0.00025701 | ||||
Cancel ERC1155Or... | 20253722 | 5 hrs ago | IN | 0 ETH | 0.00009082 | ||||
Cancel ERC721Ord... | 20253218 | 7 hrs ago | IN | 0 ETH | 0.000059 | ||||
Cancel ERC721Ord... | 20253214 | 7 hrs ago | IN | 0 ETH | 0.00009427 | ||||
Cancel ERC721Ord... | 20253150 | 7 hrs ago | IN | 0 ETH | 0.00006429 | ||||
Cancel ERC721Ord... | 20253127 | 7 hrs ago | IN | 0 ETH | 0.0000736 | ||||
Cancel ERC721Ord... | 20253111 | 7 hrs ago | IN | 0 ETH | 0.00005494 | ||||
Cancel ERC721Ord... | 20253098 | 7 hrs ago | IN | 0 ETH | 0.00005045 | ||||
Cancel ERC721Ord... | 20253088 | 7 hrs ago | IN | 0 ETH | 0.00007841 | ||||
Cancel ERC1155Or... | 20252850 | 8 hrs ago | IN | 0 ETH | 0.00008213 | ||||
Cancel ERC721Ord... | 20252838 | 8 hrs ago | IN | 0 ETH | 0.00008152 | ||||
Batch Cancel ERC... | 20252473 | 9 hrs ago | IN | 0 ETH | 0.00010006 | ||||
Batch Cancel ERC... | 20252470 | 9 hrs ago | IN | 0 ETH | 0.00009159 | ||||
Batch Cancel ERC... | 20252470 | 9 hrs ago | IN | 0 ETH | 0.00009404 | ||||
Batch Cancel ERC... | 20252467 | 9 hrs ago | IN | 0 ETH | 0.00009095 | ||||
Batch Cancel ERC... | 20252464 | 9 hrs ago | IN | 0 ETH | 0.00010105 | ||||
Batch Cancel ERC... | 20252461 | 9 hrs ago | IN | 0 ETH | 0.00008984 | ||||
Batch Cancel ERC... | 20252459 | 9 hrs ago | IN | 0 ETH | 0.00009225 | ||||
Batch Cancel ERC... | 20252454 | 9 hrs ago | IN | 0 ETH | 0.00008527 | ||||
Batch Cancel ERC... | 20252451 | 9 hrs ago | IN | 0 ETH | 0.00010983 | ||||
Batch Cancel ERC... | 20252450 | 9 hrs ago | IN | 0 ETH | 0.00009547 | ||||
Batch Cancel ERC... | 20252446 | 9 hrs ago | IN | 0 ETH | 0.0001043 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
20255043 | 55 mins ago | 0.0000345 ETH | |||||
20255043 | 55 mins ago | 0.0068655 ETH | |||||
20255043 | 55 mins ago | 0 ETH | |||||
20255043 | 55 mins ago | 0 ETH | |||||
20255043 | 55 mins ago | 0 ETH | |||||
20255043 | 55 mins ago | 0 ETH | |||||
20255043 | 55 mins ago | 0.0069 ETH | |||||
20255043 | 55 mins ago | 0.0069 ETH | |||||
20254841 | 1 hr ago | 0.00025 ETH | |||||
20254841 | 1 hr ago | 0.04975 ETH | |||||
20254841 | 1 hr ago | 0 ETH | |||||
20254841 | 1 hr ago | 0 ETH | |||||
20254841 | 1 hr ago | 0 ETH | |||||
20254841 | 1 hr ago | 0 ETH | |||||
20254841 | 1 hr ago | 0.05 ETH | |||||
20254841 | 1 hr ago | 0.05 ETH | |||||
20254680 | 2 hrs ago | 0.08658 ETH | |||||
20254680 | 2 hrs ago | 0.00222 ETH | |||||
20254680 | 2 hrs ago | 0 ETH | |||||
20254680 | 2 hrs ago | 0 ETH | |||||
20254680 | 2 hrs ago | 0 ETH | |||||
20254680 | 2 hrs ago | 0 ETH | |||||
20254680 | 2 hrs ago | 0 ETH | |||||
20254680 | 2 hrs ago | 0 ETH | |||||
20254680 | 2 hrs ago | 0 ETH |
Loading...
Loading
Contract Name:
ElementEx
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Apache-2.0 /* Modifications Copyright 2022 Element.Market Copyright 2020 ZeroEx Intl. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ pragma solidity ^0.8.13; import "./migrations/LibBootstrap.sol"; import "./features/BootstrapFeature.sol"; import "./storage/LibProxyStorage.sol"; /// @dev An extensible proxy contract that serves as a universal entry point for /// interacting with the 0x protocol. contract ElementEx { /// @dev Construct this contract and register the `BootstrapFeature` feature. /// After constructing this contract, `bootstrap()` should be called /// by `bootstrap()` to seed the initial feature set. /// @param bootstrapper Who can call `bootstrap()`. constructor(address bootstrapper) { // Temporarily create and register the bootstrap feature. // It will deregister itself after `bootstrap()` has been called. BootstrapFeature bootstrap = new BootstrapFeature(bootstrapper); LibProxyStorage.getStorage().impls[bootstrap.bootstrap.selector] = address(bootstrap); } // solhint-disable state-visibility /// @dev Forwards calls to the appropriate implementation contract. fallback() external payable { bytes memory b = msg.data; bytes4 selector; assembly { selector := mload(add(b, 32)) // Solidity does not require us to clean the trailing bytes. // We do it anyway selector := and(selector, 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000) } address impl = LibProxyStorage.getStorage().impls[selector]; if (impl == address(0)) { revert("METHOD_NOT_IMPLEMENTED"); } (bool success, bytes memory resultData) = impl.delegatecall(msg.data); if (!success) { _revertWithData(resultData); } _returnWithData(resultData); } /// @dev Fallback for just receiving ether. receive() external payable {} // solhint-enable state-visibility /// @dev Get the implementation contract of a registered function. /// @param selector The function selector. /// @return impl The implementation contract address. function getFunctionImplementation(bytes4 selector) public view returns (address impl) { return LibProxyStorage.getStorage().impls[selector]; } /// @dev Revert with arbitrary bytes. /// @param data Revert data. function _revertWithData(bytes memory data) private pure { assembly { revert(add(data, 32), mload(data)) } } /// @dev Return with arbitrary bytes. /// @param data Return data. function _returnWithData(bytes memory data) private pure { assembly { return(add(data, 32), mload(data)) } } }
// SPDX-License-Identifier: Apache-2.0 /* Modifications Copyright 2022 Element.Market Copyright 2020 ZeroEx Intl. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ pragma solidity ^0.8.13; library LibBootstrap { /// @dev Magic bytes returned by the bootstrapper to indicate success. /// This is `keccack('BOOTSTRAP_SUCCESS')`. bytes4 internal constant BOOTSTRAP_SUCCESS = 0xd150751b; /// @dev Perform a delegatecall and ensure it returns the magic bytes. /// @param target The call target. /// @param data The call data. function delegatecallBootstrapFunction(address target, bytes memory data) internal { (bool success, bytes memory resultData) = target.delegatecall(data); if (!success || resultData.length != 32 || abi.decode(resultData, (bytes4)) != BOOTSTRAP_SUCCESS) { revert("BOOTSTRAP_CALL_FAILED"); } } }
// SPDX-License-Identifier: Apache-2.0 /* Modifications Copyright 2022 Element.Market Copyright 2020 ZeroEx Intl. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ pragma solidity ^0.8.13; import "../migrations/LibBootstrap.sol"; import "../storage/LibProxyStorage.sol"; import "./interfaces/IBootstrapFeature.sol"; /// @dev Detachable `bootstrap()` feature. contract BootstrapFeature is IBootstrapFeature { // solhint-disable state-visibility,indent /// @dev The ZeroEx contract. /// This has to be immutable to persist across delegatecalls. address immutable private _deployer; /// @dev The implementation address of this contract. /// This has to be immutable to persist across delegatecalls. address immutable private _implementation; /// @dev The deployer. /// This has to be immutable to persist across delegatecalls. address immutable private _bootstrapCaller; // solhint-enable state-visibility,indent /// @dev Construct this contract and set the bootstrap migration contract. /// After constructing this contract, `bootstrap()` should be called /// to seed the initial feature set. /// @param bootstrapCaller The allowed caller of `bootstrap()`. constructor(address bootstrapCaller) { _deployer = msg.sender; _implementation = address(this); _bootstrapCaller = bootstrapCaller; } /// @dev Bootstrap the initial feature set of this contract by delegatecalling /// into `target`. Before exiting the `bootstrap()` function will /// deregister itself from the proxy to prevent being called again. /// @param target The bootstrapper contract address. /// @param callData The call data to execute on `target`. function bootstrap(address target, bytes calldata callData) external override { // Only the bootstrap caller can call this function. if (msg.sender != _bootstrapCaller) { revert("INVALID_BOOTSTRAP_CALLER"); } // Deregister. LibProxyStorage.getStorage().impls[this.bootstrap.selector] = address(0); // Self-destruct. BootstrapFeature(_implementation).die(); // Call the bootstrapper. LibBootstrap.delegatecallBootstrapFunction(target, callData); } /// @dev Self-destructs this contract. /// Can only be called by the deployer. function die() external { require(address(this) == _implementation); if (msg.sender != _deployer) { revert("INVALID_DIE_CALLER"); } selfdestruct(payable(msg.sender)); } }
// SPDX-License-Identifier: Apache-2.0 /* Modifications Copyright 2022 Element.Market Copyright 2020 ZeroEx Intl. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ pragma solidity ^0.8.13; import "./LibStorage.sol"; /// @dev Storage helpers for the proxy contract. library LibProxyStorage { /// @dev Storage bucket for proxy contract. struct Storage { // Mapping of function selector -> function implementation mapping(bytes4 => address) impls; } /// @dev Get the storage bucket for this contract. function getStorage() internal pure returns (Storage storage stor) { uint256 storageSlot = LibStorage.STORAGE_ID_PROXY; // Dip into assembly to change the slot pointed to by the local // variable `stor`. // See https://solidity.readthedocs.io/en/v0.6.8/assembly.html?highlight=slot#access-to-external-variables-functions-and-libraries assembly { stor.slot := storageSlot } } }
// SPDX-License-Identifier: Apache-2.0 /* Modifications Copyright 2022 Element.Market Copyright 2020 ZeroEx Intl. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ pragma solidity ^0.8.13; /// @dev Detachable `bootstrap()` feature. interface IBootstrapFeature { /// @dev Bootstrap the initial feature set of this contract by delegatecalling /// into `target`. Before exiting the `bootstrap()` function will /// deregister itself from the proxy to prevent being called again. /// @param target The bootstrapper contract address. /// @param callData The call data to execute on `target`. function bootstrap(address target, bytes calldata callData) external; }
// SPDX-License-Identifier: Apache-2.0 /* Modifications Copyright 2022 Element.Market Copyright 2020 ZeroEx Intl. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ pragma solidity ^0.8.13; /// @dev Common storage helpers library LibStorage { /// @dev What to bit-shift a storage ID by to get its slot. /// This gives us a maximum of 2**128 inline fields in each bucket. uint256 constant STORAGE_ID_PROXY = 1 << 128; uint256 constant STORAGE_ID_SIMPLE_FUNCTION_REGISTRY = 2 << 128; uint256 constant STORAGE_ID_OWNABLE = 3 << 128; uint256 constant STORAGE_ID_COMMON_NFT_ORDERS = 4 << 128; uint256 constant STORAGE_ID_ERC721_ORDERS = 5 << 128; uint256 constant STORAGE_ID_ERC1155_ORDERS = 6 << 128; }
{ "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
[{"inputs":[{"internalType":"address","name":"bootstrapper","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"}],"name":"getFunctionImplementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516108ad3803806108ad83398101604081905261002f916100d2565b60008160405161003e906100c5565b6001600160a01b039091168152602001604051809103906000f08015801561006a573d6000803e3d6000fd5b509050806100806100bd60201b6101cb1760201c565b6373f208d560e01b60009081526020919091526040902080546001600160a01b0319166001600160a01b0392909216919091179055506101029050565b600160801b90565b6105428061036b83390190565b6000602082840312156100e457600080fd5b81516001600160a01b03811681146100fb57600080fd5b9392505050565b61025a806101116000396000f3fe6080604052600436106100225760003560e01c8063972fdd261461016c57610029565b3661002957005b600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060208501519495506001600160e01b031990941693925061008091506101cb9050565b6001600160e01b03198316600090815260209190915260409020546001600160a01b03169050806100f05760405162461bcd60e51b81526020600482015260166024820152751351551213d117d393d517d25354131153515395115160521b604482015260640160405180910390fd5b600080826001600160a01b031660003660405161010e9291906101e3565b600060405180830381855af49150503d8060008114610149576040519150601f19603f3d011682016040523d82523d6000602084013e61014e565b606091505b50915091508161016157610161816101d3565b61016a816101db565b005b34801561017857600080fd5b506101af6101873660046101f3565b6001600160e01b0319166000908152600160801b60205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200160405180910390f35b600160801b90565b805160208201fd5b805160208201f35b8183823760009101908152919050565b60006020828403121561020557600080fd5b81356001600160e01b03198116811461021d57600080fd5b939250505056fea2646970667358221220ca6fda6f1b862cb394f87edad802e2fdacf0e4f8dbe19f92b9b6d14aee21938c64736f6c634300080d003360e060405234801561001057600080fd5b5060405161054238038061054283398101604081905261002f91610048565b336080523060a0526001600160a01b031660c052610078565b60006020828403121561005a57600080fd5b81516001600160a01b038116811461007157600080fd5b9392505050565b60805160a05160c0516104966100ac600039600061010d015260008181606301526101d001526000609801526104966000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806335f469941461003b57806373f208d514610045575b600080fd5b610043610058565b005b610043610053366004610363565b610102565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461008d57600080fd5b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100ff5760405162461bcd60e51b815260206004820152601260248201527124a72b20a624a22fa224a2afa1a0a62622a960711b60448201526064015b60405180910390fd5b33ff5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461017a5760405162461bcd60e51b815260206004820152601860248201527f494e56414c49445f424f4f5453545241505f43414c4c4552000000000000000060448201526064016100f6565b6373f208d560e01b6000908152600160801b6020527f3cba3862c67f9aae9c92a5ad503323900246e6d62bb2b9cdec744cdc2d4c0e6380546001600160a01b031916905560408051630d7d1a6560e21b815290517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926335f46994926004808201939182900301818387803b15801561021b57600080fd5b505af115801561022f573d6000803e3d6000fd5b505050506102738383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061027892505050565b505050565b600080836001600160a01b03168360405161029391906103f4565b600060405180830381855af49150503d80600081146102ce576040519150601f19603f3d011682016040523d82523d6000602084013e6102d3565b606091505b50915091508115806102e757508051602014155b806103185750805163d150751b60e01b9061030b908301602090810190840161042f565b6001600160e01b03191614155b1561035d5760405162461bcd60e51b81526020600482015260156024820152741093d3d514d514905417d0d0531317d19052531151605a1b60448201526064016100f6565b50505050565b60008060006040848603121561037857600080fd5b83356001600160a01b038116811461038f57600080fd5b9250602084013567ffffffffffffffff808211156103ac57600080fd5b818601915086601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8760208285010111156103e157600080fd5b6020830194508093505050509250925092565b6000825160005b8181101561041557602081860181015185830152016103fb565b81811115610424576000828501525b509190910192915050565b60006020828403121561044157600080fd5b81516001600160e01b03198116811461045957600080fd5b939250505056fea26469706673582212204d6b3c2f3c6cb28781f4f7205b52a31550d8b9a120a68119442acf90c8f5073764736f6c634300080d0033000000000000000000000000f52c51ab9e773e9e162b962d0d0ee6f552601d2a
Deployed Bytecode
0x6080604052600436106100225760003560e01c8063972fdd261461016c57610029565b3661002957005b600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060208501519495506001600160e01b031990941693925061008091506101cb9050565b6001600160e01b03198316600090815260209190915260409020546001600160a01b03169050806100f05760405162461bcd60e51b81526020600482015260166024820152751351551213d117d393d517d25354131153515395115160521b604482015260640160405180910390fd5b600080826001600160a01b031660003660405161010e9291906101e3565b600060405180830381855af49150503d8060008114610149576040519150601f19603f3d011682016040523d82523d6000602084013e61014e565b606091505b50915091508161016157610161816101d3565b61016a816101db565b005b34801561017857600080fd5b506101af6101873660046101f3565b6001600160e01b0319166000908152600160801b60205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200160405180910390f35b600160801b90565b805160208201fd5b805160208201f35b8183823760009101908152919050565b60006020828403121561020557600080fd5b81356001600160e01b03198116811461021d57600080fd5b939250505056fea2646970667358221220ca6fda6f1b862cb394f87edad802e2fdacf0e4f8dbe19f92b9b6d14aee21938c64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f52c51ab9e773e9e162b962d0d0ee6f552601d2a
-----Decoded View---------------
Arg [0] : bootstrapper (address): 0xF52C51ab9E773E9e162b962D0D0ee6F552601d2A
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f52c51ab9e773e9e162b962d0d0ee6f552601d2a
Loading...
Loading
Loading...
Loading
OVERVIEW
Element is a decentralized NFT marketplace based on Ethereum, BSC, Polygon, and Avalanche, that helps user create, discover, and exchange. Element provides a value trading platform for both NFT creators and investors.Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,964.43 | 0.01 | $29.64 |
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.