More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x12a512646a502e341427b2da6f6969eddee3af1334568872ccaa5ee1bf43e8d9 | Buy ERC721 | (pending) | 11 days ago | IN | 0.0003 ETH | (Pending) | |||
Transfer ERC721s | 19838184 | 2 mins ago | IN | 0 ETH | 0.00068044 | ||||
Fill Batch Signe... | 19837973 | 44 mins ago | IN | 0.0198 ETH | 0.00072718 | ||||
Sell ERC721 | 19837860 | 1 hr ago | IN | 0 ETH | 0.00054951 | ||||
Cancel ERC721Ord... | 19837564 | 2 hrs ago | IN | 0 ETH | 0.00025569 | ||||
Fill Batch Signe... | 19837513 | 2 hrs ago | IN | 0.0003 ETH | 0.00113478 | ||||
Cancel ERC721Ord... | 19837434 | 2 hrs ago | IN | 0 ETH | 0.00030167 | ||||
Cancel ERC721Ord... | 19837413 | 2 hrs ago | IN | 0 ETH | 0.00029096 | ||||
Fill Batch Signe... | 19837399 | 2 hrs ago | IN | 0.0018 ETH | 0.00119922 | ||||
Cancel ERC721Ord... | 19837396 | 2 hrs ago | IN | 0 ETH | 0.00028973 | ||||
Cancel ERC721Ord... | 19837368 | 2 hrs ago | IN | 0 ETH | 0.0002806 | ||||
Cancel ERC721Ord... | 19837359 | 2 hrs ago | IN | 0 ETH | 0.00029556 | ||||
Cancel ERC721Ord... | 19837330 | 2 hrs ago | IN | 0 ETH | 0.00016517 | ||||
Cancel ERC721Ord... | 19837330 | 2 hrs ago | IN | 0 ETH | 0.00027216 | ||||
Fill Batch Signe... | 19837316 | 2 hrs ago | IN | 0.0018 ETH | 0.00075389 | ||||
Sell ERC721 | 19837115 | 3 hrs ago | IN | 0 ETH | 0.00056839 | ||||
Batch Cancel ERC... | 19837107 | 3 hrs ago | IN | 0 ETH | 0.00012946 | ||||
Cancel ERC721Ord... | 19837014 | 3 hrs ago | IN | 0 ETH | 0.00010758 | ||||
Buy ERC721 | 19836934 | 4 hrs ago | IN | 0.04 ETH | 0.00008546 | ||||
Fill Batch Signe... | 19836752 | 4 hrs ago | IN | 0.14 ETH | 0.0006708 | ||||
Fill Batch Signe... | 19836751 | 4 hrs ago | IN | 0.02888 ETH | 0.00066401 | ||||
Cancel ERC721Ord... | 19836669 | 5 hrs ago | IN | 0 ETH | 0.00012423 | ||||
Batch Cancel ERC... | 19836560 | 5 hrs ago | IN | 0 ETH | 0.00014449 | ||||
Sell ERC721 | 19836378 | 6 hrs ago | IN | 0 ETH | 0.00071153 | ||||
Buy ERC1155Ex | 19836286 | 6 hrs ago | IN | 0.0012 ETH | 0.00044502 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
19837973 | 44 mins ago | 0.000099 ETH | ||||
19837973 | 44 mins ago | 0.019701 ETH | ||||
19837513 | 2 hrs ago | 0.0000015 ETH | ||||
19837513 | 2 hrs ago | 0.0002985 ETH | ||||
19837399 | 2 hrs ago | 0.000009 ETH | ||||
19837399 | 2 hrs ago | 0.001791 ETH | ||||
19837316 | 2 hrs ago | 0.000009 ETH | ||||
19837316 | 2 hrs ago | 0.001791 ETH | ||||
19836752 | 4 hrs ago | 0.0007 ETH | ||||
19836752 | 4 hrs ago | 0.1386 ETH | ||||
19836752 | 4 hrs ago | 0.0007 ETH | ||||
19836751 | 4 hrs ago | 0.028158 ETH | ||||
19836751 | 4 hrs ago | 0.000722 ETH | ||||
19836360 | 6 hrs ago | 0.0001705 ETH | ||||
19836360 | 6 hrs ago | 0.0339295 ETH | ||||
19836360 | 6 hrs ago | 0.0341 ETH | ||||
19836286 | 6 hrs ago | 0.000006 ETH | ||||
19836286 | 6 hrs ago | 0.001194 ETH | ||||
19835082 | 10 hrs ago | 0.00000599 ETH | ||||
19835082 | 10 hrs ago | 0.001193 ETH | ||||
19835082 | 10 hrs ago | 0.001199 ETH | ||||
19834696 | 11 hrs ago | 0.0006 ETH | ||||
19834696 | 11 hrs ago | 0.1194 ETH | ||||
19834499 | 12 hrs ago | 0.000325 ETH | ||||
19834499 | 12 hrs ago | 0.064675 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 | 24 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,045.18 | 0.01 | $30.45 |
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.