More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 44,867 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Buy ERC1155Ex | 60735000 | 26 hrs ago | IN | 0.0003 AVAX | 0.00008394 | ||||
Buy ERC1155Ex | 60727140 | 29 hrs ago | IN | 0.00099 AVAX | 0.00015219 | ||||
Buy ERC1155Ex | 60619525 | 3 days ago | IN | 0.002 AVAX | 0.0001349 | ||||
Cancel ERC721Ord... | 60611761 | 3 days ago | IN | 0 AVAX | 0.00000484 | ||||
Cancel ERC721Ord... | 60611701 | 3 days ago | IN | 0 AVAX | 0.00000427 | ||||
Cancel ERC721Ord... | 60611669 | 3 days ago | IN | 0 AVAX | 0.00000795 | ||||
Fill Batch Signe... | 60584354 | 3 days ago | IN | 0.00899 AVAX | 0.00031408 | ||||
Buy ERC1155Ex | 60584307 | 3 days ago | IN | 0.002 AVAX | 0.00021383 | ||||
Buy ERC1155Ex | 60584274 | 3 days ago | IN | 0.002 AVAX | 0.00021286 | ||||
Fill Batch Signe... | 60584225 | 3 days ago | IN | 0.06 AVAX | 0.00025936 | ||||
Fill Batch Signe... | 60542991 | 4 days ago | IN | 0.00955 AVAX | 0.00020503 | ||||
Fill Batch Signe... | 60431751 | 6 days ago | IN | 0.004 AVAX | 0.0001533 | ||||
Buy ERC1155Ex | 60396178 | 6 days ago | IN | 0.00089 AVAX | 0.00015217 | ||||
Buy ERC1155Ex | 60382076 | 7 days ago | IN | 0.00059 AVAX | 0.00016505 | ||||
Buy ERC1155Ex | 60372451 | 7 days ago | IN | 0.002 AVAX | 0.00015217 | ||||
Buy ERC1155Ex | 60334312 | 7 days ago | IN | 0.00099 AVAX | 0.00015217 | ||||
Cancel ERC721Ord... | 60312834 | 8 days ago | IN | 0 AVAX | 0.00000338 | ||||
Cancel ERC721Ord... | 60312704 | 8 days ago | IN | 0 AVAX | 0.00000509 | ||||
Buy ERC1155Ex | 60213158 | 9 days ago | IN | 0.00099 AVAX | 0.00015155 | ||||
Fill Batch Signe... | 60141523 | 11 days ago | IN | 0.00199 AVAX | 0.00021602 | ||||
Fill Batch Signe... | 60036823 | 12 days ago | IN | 0.001 AVAX | 0.00022436 | ||||
Buy ERC1155Ex | 60031127 | 12 days ago | IN | 0.002 AVAX | 0.00018733 | ||||
Buy ERC1155Ex | 60030788 | 12 days ago | IN | 0.002 AVAX | 0.00024553 | ||||
Fill Batch Signe... | 60030611 | 12 days ago | IN | 0.001 AVAX | 0.00029311 | ||||
Buy ERC1155Ex | 60010074 | 13 days ago | IN | 0.006 AVAX | 0.00017496 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
60735000 | 26 hrs ago | 0.000006 AVAX | ||||
60735000 | 26 hrs ago | 0.000294 AVAX | ||||
60727140 | 29 hrs ago | 0.0000198 AVAX | ||||
60727140 | 29 hrs ago | 0.0009702 AVAX | ||||
60619525 | 3 days ago | 0.00004 AVAX | ||||
60619525 | 3 days ago | 0.00196 AVAX | ||||
60584354 | 3 days ago | 0.0001798 AVAX | ||||
60584354 | 3 days ago | 0.0088102 AVAX | ||||
60584307 | 3 days ago | 0.00004 AVAX | ||||
60584307 | 3 days ago | 0.00196 AVAX | ||||
60584274 | 3 days ago | 0.00004 AVAX | ||||
60584274 | 3 days ago | 0.00196 AVAX | ||||
60584225 | 3 days ago | 0.0012 AVAX | ||||
60584225 | 3 days ago | 0.0528 AVAX | ||||
60584225 | 3 days ago | 0.006 AVAX | ||||
60568460 | 3 days ago | 0.0000158 AVAX | ||||
60568460 | 3 days ago | 0.0007742 AVAX | ||||
60568460 | 3 days ago | 0.00079 AVAX | ||||
60560884 | 4 days ago | 0.0000158 AVAX | ||||
60560884 | 4 days ago | 0.0007742 AVAX | ||||
60560884 | 4 days ago | 0.00079 AVAX | ||||
60542991 | 4 days ago | 0.000191 AVAX | ||||
60542991 | 4 days ago | 0.009359 AVAX | ||||
60489115 | 5 days ago | 0.000016 AVAX | ||||
60489115 | 5 days ago | 0.000784 AVAX |
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
608060405234801561001057600080fd5b506040516108ad3803806108ad83398101604081905261002f916100d2565b60008160405161003e906100c5565b6001600160a01b039091168152602001604051809103906000f08015801561006a573d6000803e3d6000fd5b509050806100806100bd60201b6101cb1760201c565b6373f208d560e01b60009081526020919091526040902080546001600160a01b0319166001600160a01b0392909216919091179055506101029050565b600160801b90565b6105428061036b83390190565b6000602082840312156100e457600080fd5b81516001600160a01b03811681146100fb57600080fd5b9392505050565b61025a806101116000396000f3fe6080604052600436106100225760003560e01c8063972fdd261461016c57610029565b3661002957005b600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060208501519495506001600160e01b031990941693925061008091506101cb9050565b6001600160e01b03198316600090815260209190915260409020546001600160a01b03169050806100f05760405162461bcd60e51b81526020600482015260166024820152751351551213d117d393d517d25354131153515395115160521b604482015260640160405180910390fd5b600080826001600160a01b031660003660405161010e9291906101e3565b600060405180830381855af49150503d8060008114610149576040519150601f19603f3d011682016040523d82523d6000602084013e61014e565b606091505b50915091508161016157610161816101d3565b61016a816101db565b005b34801561017857600080fd5b506101af6101873660046101f3565b6001600160e01b0319166000908152600160801b60205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200160405180910390f35b600160801b90565b805160208201fd5b805160208201f35b8183823760009101908152919050565b60006020828403121561020557600080fd5b81356001600160e01b03198116811461021d57600080fd5b939250505056fea2646970667358221220ca6fda6f1b862cb394f87edad802e2fdacf0e4f8dbe19f92b9b6d14aee21938c64736f6c634300080d003360e060405234801561001057600080fd5b5060405161054238038061054283398101604081905261002f91610048565b336080523060a0526001600160a01b031660c052610078565b60006020828403121561005a57600080fd5b81516001600160a01b038116811461007157600080fd5b9392505050565b60805160a05160c0516104966100ac600039600061010d015260008181606301526101d001526000609801526104966000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806335f469941461003b57806373f208d514610045575b600080fd5b610043610058565b005b610043610053366004610363565b610102565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461008d57600080fd5b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100ff5760405162461bcd60e51b815260206004820152601260248201527124a72b20a624a22fa224a2afa1a0a62622a960711b60448201526064015b60405180910390fd5b33ff5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461017a5760405162461bcd60e51b815260206004820152601860248201527f494e56414c49445f424f4f5453545241505f43414c4c4552000000000000000060448201526064016100f6565b6373f208d560e01b6000908152600160801b6020527f3cba3862c67f9aae9c92a5ad503323900246e6d62bb2b9cdec744cdc2d4c0e6380546001600160a01b031916905560408051630d7d1a6560e21b815290517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316926335f46994926004808201939182900301818387803b15801561021b57600080fd5b505af115801561022f573d6000803e3d6000fd5b505050506102738383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061027892505050565b505050565b600080836001600160a01b03168360405161029391906103f4565b600060405180830381855af49150503d80600081146102ce576040519150601f19603f3d011682016040523d82523d6000602084013e6102d3565b606091505b50915091508115806102e757508051602014155b806103185750805163d150751b60e01b9061030b908301602090810190840161042f565b6001600160e01b03191614155b1561035d5760405162461bcd60e51b81526020600482015260156024820152741093d3d514d514905417d0d0531317d19052531151605a1b60448201526064016100f6565b50505050565b60008060006040848603121561037857600080fd5b83356001600160a01b038116811461038f57600080fd5b9250602084013567ffffffffffffffff808211156103ac57600080fd5b818601915086601f8301126103c057600080fd5b8135818111156103cf57600080fd5b8760208285010111156103e157600080fd5b6020830194508093505050509250925092565b6000825160005b8181101561041557602081860181015185830152016103fb565b81811115610424576000828501525b509190910192915050565b60006020828403121561044157600080fd5b81516001600160e01b03198116811461045957600080fd5b939250505056fea26469706673582212204d6b3c2f3c6cb28781f4f7205b52a31550d8b9a120a68119442acf90c8f5073764736f6c634300080d003300000000000000000000000010e6d9e9b746ed71fa728c92d41b401f05f2cf4e
Deployed Bytecode
0x6080604052600436106100225760003560e01c8063972fdd261461016c57610029565b3661002957005b600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060208501519495506001600160e01b031990941693925061008091506101cb9050565b6001600160e01b03198316600090815260209190915260409020546001600160a01b03169050806100f05760405162461bcd60e51b81526020600482015260166024820152751351551213d117d393d517d25354131153515395115160521b604482015260640160405180910390fd5b600080826001600160a01b031660003660405161010e9291906101e3565b600060405180830381855af49150503d8060008114610149576040519150601f19603f3d011682016040523d82523d6000602084013e61014e565b606091505b50915091508161016157610161816101d3565b61016a816101db565b005b34801561017857600080fd5b506101af6101873660046101f3565b6001600160e01b0319166000908152600160801b60205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200160405180910390f35b600160801b90565b805160208201fd5b805160208201f35b8183823760009101908152919050565b60006020828403121561020557600080fd5b81356001600160e01b03198116811461021d57600080fd5b939250505056fea2646970667358221220ca6fda6f1b862cb394f87edad802e2fdacf0e4f8dbe19f92b9b6d14aee21938c64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000010e6d9e9b746ed71fa728c92d41b401f05f2cf4e
-----Decoded View---------------
Arg [0] : bootstrapper (address): 0x10e6d9E9B746ed71fA728C92D41b401f05f2cf4E
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000010e6d9e9b746ed71fa728c92d41b401f05f2cf4e
Loading...
Loading
OVERVIEW
Element is a decentralized NFT marketplace based on Ethereum, BSC, Polygon, and Avalanche, that helps user to create, discover, and exchange. Element provides a value trading platform for both NFT creators and investors.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.