Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 25 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Create | 18771769 | 76 days ago | IN | 0 ETH | 0.00005781 | ||||
Create | 18170451 | 99 days ago | IN | 0 ETH | 0.00009068 | ||||
Create | 18168960 | 99 days ago | IN | 0 ETH | 0.00009571 | ||||
Create | 18143024 | 100 days ago | IN | 0 ETH | 0.00013444 | ||||
Create | 18142300 | 100 days ago | IN | 0 ETH | 0.00014649 | ||||
Create | 18026638 | 105 days ago | IN | 0 ETH | 0.00012416 | ||||
Create | 17456733 | 128 days ago | IN | 0 ETH | 0.00004433 | ||||
Create | 17456732 | 128 days ago | IN | 0 ETH | 0.00004433 | ||||
Create | 17440811 | 129 days ago | IN | 0 ETH | 0.00005416 | ||||
Create | 17424658 | 129 days ago | IN | 0 ETH | 0.00013022 | ||||
Create | 17389925 | 131 days ago | IN | 0 ETH | 0.00007346 | ||||
Create | 17377879 | 131 days ago | IN | 0 ETH | 0.00003153 | ||||
Create | 17377878 | 131 days ago | IN | 0 ETH | 0.00003153 | ||||
Create | 17377877 | 131 days ago | IN | 0 ETH | 0.00003153 | ||||
Create | 17328507 | 133 days ago | IN | 0 ETH | 0.00003266 | ||||
Create | 17328505 | 133 days ago | IN | 0 ETH | 0.00003266 | ||||
Create | 17201886 | 138 days ago | IN | 0 ETH | 0.00003309 | ||||
Create | 17201883 | 138 days ago | IN | 0 ETH | 0.00003309 | ||||
Create | 17196614 | 138 days ago | IN | 0 ETH | 0.00009445 | ||||
Create | 17196308 | 138 days ago | IN | 0 ETH | 0.00008608 | ||||
Create | 17192198 | 139 days ago | IN | 0 ETH | 0.00007935 | ||||
Create | 17175990 | 139 days ago | IN | 0 ETH | 0.00004577 | ||||
Create | 17175988 | 139 days ago | IN | 0 ETH | 0.00004576 | ||||
Create | 17175987 | 139 days ago | IN | 0 ETH | 0.00004575 | ||||
Create | 17167554 | 140 days ago | IN | 0 ETH | 0.00007838 |
Latest 25 internal transactions (View All)
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
OmniseaDropsFactory
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 1 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.7; import "../interfaces/IOmniseaERC721Psi.sol"; import "./OmniseaERC721PsiProxy.sol"; import "../interfaces/IOmniseaDropsFactory.sol"; import { CreateParams } from "../structs/erc721/ERC721Structs.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; contract OmniseaDropsFactory is IOmniseaDropsFactory, ReentrancyGuard { address internal _manager; address public owner; address public scheduler; address public omniseaERC721Psi; mapping(address => bool) public drops; event Created(address indexed collection); constructor(address _scheduler, address _omniseaERC721Psi) { owner = msg.sender; scheduler = _scheduler; omniseaERC721Psi = _omniseaERC721Psi; } function create(CreateParams calldata _params) external override nonReentrant { OmniseaERC721PsiProxy proxy = new OmniseaERC721PsiProxy(omniseaERC721Psi); address proxyAddress = address(proxy); IOmniseaERC721Psi(proxyAddress).initialize(_params, msg.sender, _manager, scheduler); drops[proxyAddress] = true; emit Created(proxyAddress); } function setManager(address manager_) external { require(msg.sender == owner); _manager = manager_; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.5.0; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; import { CreateParams } from "../structs/erc721/ERC721Structs.sol"; /** * @dev Interface of the IOmniseaUniversalONFT: Universal ONFT Core through delegation */ interface IOmniseaERC721Psi is IERC165 { function initialize(CreateParams memory params, address _owner, address _dropsManagerAddress, address _scheduler) external; function mint(address _minter, uint24 _quantity, bytes32[] memory _merkleProof, uint8 _phaseId) external returns (uint256); function mintPrice(uint8 _phaseId) external view returns (uint256); function owner() external view returns (address); function dropsManager() external view returns (address); function endTime() external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.7; contract OmniseaERC721PsiProxy { address private _proxy; constructor(address proxy_) { _proxy = proxy_; } fallback() external payable { _delegate(_proxy); } receive() external payable { _delegate(_proxy); } function _delegate(address _proxyTo) internal { assembly { let ptr := mload(0x40) calldatacopy(ptr, 0, calldatasize()) let result := delegatecall(gas(), _proxyTo, ptr, calldatasize(), 0, 0) let size := returndatasize() returndatacopy(ptr, 0, size) switch result case 0 { revert(ptr, size) } default { return(ptr, size) } } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.7; import {CreateParams} from "../structs/erc721/ERC721Structs.sol"; interface IOmniseaDropsFactory { function create(CreateParams calldata params) external; function drops(address) external returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.7; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; struct CreateParams { string name; string symbol; string uri; string tokensURI; uint24 maxSupply; bool isZeroIndexed; uint24 royaltyAmount; uint256 endTime; bool isEdition; bool isSBT; uint256 premintQuantity; } struct MintParams { address to; address collection; uint24 quantity; bytes32[] merkleProof; uint8 phaseId; bytes payloadForCall; } struct OmnichainMintParams { address collection; uint24 quantity; uint256 paid; uint8 phaseId; address minter; } struct Phase { uint256 from; uint256 to; uint24 maxPerAddress; uint256 price; bytes32 merkleRoot; address token; uint256 minToken; } struct BasicCollectionParams { uint tokenId; string name; string symbol; string uri; string tokenURI; address owner; } struct LzParams { uint16 dstChainId; address zroPaymentAddress; bytes adapterParams; address payable refundAddress; } struct SendParams { bytes toAddress; address sender; address from; bytes payloadForCall; } struct EncodedSendParams { bytes toAddress; bytes sender; bytes from; bytes payloadForCall; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
{ "optimizer": { "enabled": true, "runs": 1 }, "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":"_scheduler","type":"address"},{"internalType":"address","name":"_omniseaERC721Psi","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"collection","type":"address"}],"name":"Created","type":"event"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"string","name":"tokensURI","type":"string"},{"internalType":"uint24","name":"maxSupply","type":"uint24"},{"internalType":"bool","name":"isZeroIndexed","type":"bool"},{"internalType":"uint24","name":"royaltyAmount","type":"uint24"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"isEdition","type":"bool"},{"internalType":"bool","name":"isSBT","type":"bool"},{"internalType":"uint256","name":"premintQuantity","type":"uint256"}],"internalType":"struct CreateParams","name":"_params","type":"tuple"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"drops","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"omniseaERC721Psi","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"scheduler","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"manager_","type":"address"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161077b38038061077b83398101604081905261002f9161008c565b6001600055600280546001600160a01b03199081163317909155600380546001600160a01b03948516908316179055600480549290931691161790556100bf565b80516001600160a01b038116811461008757600080fd5b919050565b6000806040838503121561009f57600080fd5b6100a883610070565b91506100b660208401610070565b90509250929050565b6106ad806100ce6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633849f410146100675780634c19eb68146100905780638da5cb5b146100c3578063d0ebdbe7146100d6578063d1ad17bf146100eb578063fc879190146100fe575b600080fd5b60045461007a906001600160a01b031681565b60405161008791906102c9565b60405180910390f35b6100b361009e3660046102dd565b60056020526000908152604090205460ff1681565b6040519015158152602001610087565b60025461007a906001600160a01b031681565b6100e96100e43660046102dd565b610111565b005b60035461007a906001600160a01b031681565b6100e961010c36600461030d565b61014a565b6002546001600160a01b0316331461012857600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600260005414156101a15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640160405180910390fd5b600260009081556004546040516001600160a01b03909116906101c3906102af565b6101cd91906102c9565b604051809103906000f0801580156101e9573d6000803e3d6000fd5b5060015460035460405163189cf22d60e21b815292935083926001600160a01b0380851693636273c8b493610229938993339381169216906004016103e5565b600060405180830381600087803b15801561024357600080fd5b505af1158015610257573d6000803e3d6000fd5b5050506001600160a01b038216600081815260056020526040808220805460ff19166001179055519192507f1449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5b91a25050600160005550565b6101198061055f83390190565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b6000602082840312156102ef57600080fd5b81356001600160a01b038116811461030657600080fd5b9392505050565b60006020828403121561031f57600080fd5b81356001600160401b0381111561033557600080fd5b8201610160818503121561030657600080fd5b6000808335601e1984360301811261035f57600080fd5b83016020810192503590506001600160401b0381111561037e57600080fd5b80360383131561038d57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b803562ffffff811681146103d057600080fd5b919050565b803580151581146103d057600080fd5b6080815260006103f58687610348565b61016080608086015261040d6101e086018385610394565b925061041c60208a018a610348565b9250607f19808786030160a0880152610436858584610394565b945061044560408c018c610348565b94509150808786030160c088015261045e858584610394565b945061046d60608c018c610348565b94509150808786030160e088015250610487848483610394565b93505061049660808a016103bd565b91506101006104ab8187018462ffffff169052565b6104b760a08b016103d5565b92506101206104c98188018515159052565b6104d560c08c016103bd565b93506101406104ea8189018662ffffff169052565b60e08c0135848901526104fe838d016103d5565b8015156101808a01529450610514828d016103d5565b15156101a08901528b01356101c08801525092935061053b925050602084019050866102bc565b61054860408301856102bc565b61055560608301846102bc565b9594505050505056fe608060405234801561001057600080fd5b5060405161011938038061011983398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6087806100926000396000f3fe608060405236601d57600054601b906001600160a01b0316602d565b005b600054601b906001600160a01b03165b60405136600082376000803683855af43d806000843e818015604d578184f35b8184fdfea2646970667358221220600f90c0e59ddffb769074d4cc74283ea59df1a89099816dd6169b248142b48764736f6c63430008090033a264697066735822122048afd717900e93b31922a6c1952ebe6c0c810a6b33fe891f22eb755c290c7b6664736f6c634300080900330000000000000000000000007b46c5e9af7d9979eb2062706dad9292ffccd8f4000000000000000000000000e7c37ffa1c217466816332444ef74c07f159653a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100625760003560e01c80633849f410146100675780634c19eb68146100905780638da5cb5b146100c3578063d0ebdbe7146100d6578063d1ad17bf146100eb578063fc879190146100fe575b600080fd5b60045461007a906001600160a01b031681565b60405161008791906102c9565b60405180910390f35b6100b361009e3660046102dd565b60056020526000908152604090205460ff1681565b6040519015158152602001610087565b60025461007a906001600160a01b031681565b6100e96100e43660046102dd565b610111565b005b60035461007a906001600160a01b031681565b6100e961010c36600461030d565b61014a565b6002546001600160a01b0316331461012857600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600260005414156101a15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640160405180910390fd5b600260009081556004546040516001600160a01b03909116906101c3906102af565b6101cd91906102c9565b604051809103906000f0801580156101e9573d6000803e3d6000fd5b5060015460035460405163189cf22d60e21b815292935083926001600160a01b0380851693636273c8b493610229938993339381169216906004016103e5565b600060405180830381600087803b15801561024357600080fd5b505af1158015610257573d6000803e3d6000fd5b5050506001600160a01b038216600081815260056020526040808220805460ff19166001179055519192507f1449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5b91a25050600160005550565b6101198061055f83390190565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b6000602082840312156102ef57600080fd5b81356001600160a01b038116811461030657600080fd5b9392505050565b60006020828403121561031f57600080fd5b81356001600160401b0381111561033557600080fd5b8201610160818503121561030657600080fd5b6000808335601e1984360301811261035f57600080fd5b83016020810192503590506001600160401b0381111561037e57600080fd5b80360383131561038d57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b803562ffffff811681146103d057600080fd5b919050565b803580151581146103d057600080fd5b6080815260006103f58687610348565b61016080608086015261040d6101e086018385610394565b925061041c60208a018a610348565b9250607f19808786030160a0880152610436858584610394565b945061044560408c018c610348565b94509150808786030160c088015261045e858584610394565b945061046d60608c018c610348565b94509150808786030160e088015250610487848483610394565b93505061049660808a016103bd565b91506101006104ab8187018462ffffff169052565b6104b760a08b016103d5565b92506101206104c98188018515159052565b6104d560c08c016103bd565b93506101406104ea8189018662ffffff169052565b60e08c0135848901526104fe838d016103d5565b8015156101808a01529450610514828d016103d5565b15156101a08901528b01356101c08801525092935061053b925050602084019050866102bc565b61054860408301856102bc565b61055560608301846102bc565b9594505050505056fe608060405234801561001057600080fd5b5060405161011938038061011983398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6087806100926000396000f3fe608060405236601d57600054601b906001600160a01b0316602d565b005b600054601b906001600160a01b03165b60405136600082376000803683855af43d806000843e818015604d578184f35b8184fdfea2646970667358221220600f90c0e59ddffb769074d4cc74283ea59df1a89099816dd6169b248142b48764736f6c63430008090033a264697066735822122048afd717900e93b31922a6c1952ebe6c0c810a6b33fe891f22eb755c290c7b6664736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007b46c5e9af7d9979eb2062706dad9292ffccd8f4000000000000000000000000e7c37ffa1c217466816332444ef74c07f159653a
-----Decoded View---------------
Arg [0] : _scheduler (address): 0x7B46c5e9aF7D9979eb2062706DaD9292FFCcD8F4
Arg [1] : _omniseaERC721Psi (address): 0xE7C37fFa1c217466816332444Ef74c07f159653A
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007b46c5e9af7d9979eb2062706dad9292ffccd8f4
Arg [1] : 000000000000000000000000e7c37ffa1c217466816332444ef74c07f159653a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.