More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 92,179 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Batch Sell ERC72... | 22254136 | 19 hrs ago | IN | 0 ETH | 0.00048728 | ||||
Cancel ERC721Ord... | 22254074 | 19 hrs ago | IN | 0 ETH | 0.00011345 | ||||
Sell ERC721 | 22254041 | 20 hrs ago | IN | 0 ETH | 0.0003861 | ||||
Batch Sell ERC72... | 22254028 | 20 hrs ago | IN | 0 ETH | 0.00127281 | ||||
Sell ERC721 | 22253988 | 20 hrs ago | IN | 0 ETH | 0.00040916 | ||||
Batch Sell ERC72... | 22253972 | 20 hrs ago | IN | 0 ETH | 0.0007172 | ||||
Batch Sell ERC72... | 22253878 | 20 hrs ago | IN | 0 ETH | 0.00055637 | ||||
Batch Sell ERC72... | 22253863 | 20 hrs ago | IN | 0 ETH | 0.00162354 | ||||
Batch Sell ERC72... | 22253852 | 20 hrs ago | IN | 0 ETH | 0.00115707 | ||||
Batch Sell ERC72... | 22253784 | 20 hrs ago | IN | 0 ETH | 0.00071795 | ||||
Cancel ERC721Ord... | 22253084 | 23 hrs ago | IN | 0 ETH | 0.0000523 | ||||
Fill Batch Signe... | 22252719 | 24 hrs ago | IN | 0.044 ETH | 0.00028656 | ||||
Fill Batch Signe... | 22252678 | 24 hrs ago | IN | 0.009 ETH | 0.00006483 | ||||
Transfer ERC721s | 22251609 | 28 hrs ago | IN | 0 ETH | 0.00051019 | ||||
Transfer ERC721s | 22248770 | 37 hrs ago | IN | 0 ETH | 0.00008819 | ||||
Cancel ERC721Ord... | 22247741 | 41 hrs ago | IN | 0 ETH | 0.00004147 | ||||
Cancel ERC721Ord... | 22245726 | 47 hrs ago | IN | 0 ETH | 0.0000556 | ||||
Cancel ERC721Ord... | 22245566 | 2 days ago | IN | 0 ETH | 0.00003985 | ||||
Cancel ERC721Ord... | 22245547 | 2 days ago | IN | 0 ETH | 0.00006048 | ||||
Fill Batch Signe... | 22244518 | 2 days ago | IN | 0.006 ETH | 0.00012564 | ||||
Buy ERC721Ex | 22243007 | 2 days ago | IN | 0.0013 ETH | 0.00010702 | ||||
Buy ERC721Ex | 22242955 | 2 days ago | IN | 0.001 ETH | 0.0001103 | ||||
Sell ERC721 | 22242951 | 2 days ago | IN | 0 ETH | 0.00015045 | ||||
Sell ERC721 | 22242947 | 2 days ago | IN | 0 ETH | 0.0001591 | ||||
Sell ERC721 | 22242932 | 2 days ago | IN | 0 ETH | 0.00024298 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 22252719 | 24 hrs ago | 0.00022 ETH | ||||
Transfer | 22252719 | 24 hrs ago | 0.04378 ETH | ||||
Transfer | 22252678 | 24 hrs ago | 0.000045 ETH | ||||
Transfer | 22252678 | 24 hrs ago | 0.008955 ETH | ||||
Transfer | 22244518 | 2 days ago | 0.00003 ETH | ||||
Transfer | 22244518 | 2 days ago | 0.00567 ETH | ||||
Transfer | 22244518 | 2 days ago | 0.0003 ETH | ||||
Transfer | 22243030 | 2 days ago | 0.001 ETH | ||||
Transfer* | 22243030 | 2 days ago | 0.001 ETH | ||||
Transfer | 22243019 | 2 days ago | 0.001 ETH | ||||
Transfer* | 22243019 | 2 days ago | 0.001 ETH | ||||
Transfer | 22243007 | 2 days ago | 0.0013 ETH | ||||
Transfer | 22242996 | 2 days ago | 0.001 ETH | ||||
Transfer* | 22242996 | 2 days ago | 0.001 ETH | ||||
Transfer | 22242974 | 2 days ago | 0.00125 ETH | ||||
Transfer* | 22242974 | 2 days ago | 0.00125 ETH | ||||
Transfer | 22242955 | 2 days ago | 0.001 ETH | ||||
Transfer | 22242909 | 2 days ago | 0.0015 ETH | ||||
Transfer | 22240458 | 2 days ago | 0.006201 ETH | ||||
Transfer | 22240458 | 2 days ago | 0.000159 ETH | ||||
Transfer* | 22240458 | 2 days ago | 0.00636 ETH | ||||
Transfer | 22187695 | 10 days ago | 0.0001475 ETH | ||||
Transfer | 22187695 | 10 days ago | 0.029205 ETH | ||||
Transfer | 22187695 | 10 days ago | 0.0001475 ETH | ||||
Transfer | 22174835 | 11 days ago | 0.0000045 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
Contract ABI
API[{"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 | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $1,602.7 | 0.01 | $16.03 |
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.