Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,648 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Purchase | 16488063 | 546 days ago | IN | 0.46492946 ETH | 0.0056105 | ||||
Purchase To | 16485911 | 546 days ago | IN | 0.52 ETH | 0.01361725 | ||||
Purchase | 16485404 | 546 days ago | IN | 0.46492946 ETH | 0.0017819 | ||||
Purchase | 16485402 | 546 days ago | IN | 0.47198275 ETH | 0.00188989 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.44376959 ETH | 0.00440782 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00202233 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.45787617 ETH | 0.00488162 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.46492946 ETH | 0.00518856 | ||||
Purchase | 16485399 | 546 days ago | IN | 0.47198275 ETH | 0.00202233 | ||||
Purchase | 16485396 | 546 days ago | IN | 0.46492946 ETH | 0.00215988 | ||||
Purchase | 16485396 | 546 days ago | IN | 0.48608934 ETH | 0.00216999 | ||||
Purchase | 16485396 | 546 days ago | IN | 0.48608934 ETH | 0.00216999 | ||||
Purchase | 16485396 | 546 days ago | IN | 0.48608934 ETH | 0.00216999 | ||||
Purchase | 16485396 | 546 days ago | IN | 0.58483542 ETH | 0.00216999 | ||||
Purchase | 16485396 | 546 days ago | IN | 0.47198275 ETH | 0.00217212 | ||||
Purchase | 16485396 | 546 days ago | IN | 0.47903605 ETH | 0.00217212 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
16485388 | 546 days ago | 0.39304467 ETH | ||||
16485388 | 546 days ago | 0.04367163 ETH | ||||
16485388 | 546 days ago | 0.02115987 ETH | ||||
16485388 | 546 days ago | 0.39304467 ETH | ||||
16485388 | 546 days ago | 0.04367163 ETH | ||||
16485388 | 546 days ago | 0.01410658 ETH | ||||
16485388 | 546 days ago | 0.39304467 ETH | ||||
16485388 | 546 days ago | 0.04367163 ETH | ||||
16485388 | 546 days ago | 0.02821316 ETH | ||||
16485388 | 546 days ago | 0.39304467 ETH | ||||
16485388 | 546 days ago | 0.04367163 ETH | ||||
16485388 | 546 days ago | 0.02115987 ETH | ||||
16485388 | 546 days ago | 0.39304467 ETH | ||||
16485388 | 546 days ago | 0.04367163 ETH | ||||
16485388 | 546 days ago | 0.03526645 ETH | ||||
16485388 | 546 days ago | 0.39304467 ETH | ||||
16485388 | 546 days ago | 0.04367163 ETH | ||||
16485388 | 546 days ago | 0.03328369 ETH | ||||
16485388 | 546 days ago | 0.39304467 ETH | ||||
16485388 | 546 days ago | 0.04367163 ETH | ||||
16485388 | 546 days ago | 0.03328369 ETH | ||||
16485388 | 546 days ago | 0.39304467 ETH | ||||
16485388 | 546 days ago | 0.04367163 ETH | ||||
16485388 | 546 days ago | 0.03526645 ETH | ||||
16485388 | 546 days ago | 0.39304467 ETH |
Loading...
Loading
Contract Name:
MinterDAExpV1
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 100 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: LGPL-3.0-only // Created By: Art Blocks Inc. import "../interfaces/0.8.x/IGenArt721CoreContractV1.sol"; import "../interfaces/0.8.x/IMinterFilterV0.sol"; import "../interfaces/0.8.x/IFilteredMinterV0.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; pragma solidity 0.8.9; /** * @title Filtered Minter contract that allows tokens to be minted with ETH. * Pricing is achieved using an automated Dutch-auction mechanism. * @author Art Blocks Inc. */ contract MinterDAExpV1 is ReentrancyGuard, IFilteredMinterV0 { /// Auction details updated for project `projectId`. event SetAuctionDetails( uint256 indexed projectId, uint256 _auctionTimestampStart, uint256 _priceDecayHalfLifeSeconds, uint256 _startPrice, uint256 _basePrice ); /// Auction details cleared for project `projectId`. event ResetAuctionDetails(uint256 indexed projectId); /// Maximum and minimum allowed price decay half lifes updated. event AuctionHalfLifeRangeSecondsUpdated( uint256 _minimumPriceDecayHalfLifeSeconds, uint256 _maximumPriceDecayHalfLifeSeconds ); /// Core contract address this minter interacts with address public immutable genArt721CoreAddress; /// This contract handles cores with interface IV1 IGenArt721CoreContractV1 private immutable genArtCoreContract; /// Minter filter address this minter interacts with address public immutable minterFilterAddress; /// Minter filter this minter may interact with. IMinterFilterV0 private immutable minterFilter; /// minterType for this minter string public constant minterType = "MinterDAExpV1"; uint256 constant ONE_MILLION = 1_000_000; /// projectId => has project reached its maximum number of invocations? mapping(uint256 => bool) public projectMaxHasBeenInvoked; /// projectId => project's maximum number of invocations mapping(uint256 => uint256) public projectMaxInvocations; /// Minimum price decay half life: price must decay with a half life of at /// least this amount (must cut in half at least every N seconds). uint256 public minimumPriceDecayHalfLifeSeconds = 300; // 5 minutes /// Maximum price decay half life: price may decay with a half life of no /// more than this amount (may cut in half at no more than every N seconds). uint256 public maximumPriceDecayHalfLifeSeconds = 3600; // 60 minutes /// projectId => auction parameters mapping(uint256 => AuctionParameters) public projectAuctionParameters; struct AuctionParameters { uint256 timestampStart; uint256 priceDecayHalfLifeSeconds; uint256 startPrice; uint256 basePrice; } modifier onlyCoreWhitelisted() { require( genArtCoreContract.isWhitelisted(msg.sender), "Only Core whitelisted" ); _; } modifier onlyArtist(uint256 _projectId) { require( (msg.sender == genArtCoreContract.projectIdToArtistAddress(_projectId)), "Only Artist" ); _; } /** * @notice Initializes contract to be a Filtered Minter for * `_minterFilter`, integrated with Art Blocks core contract * at address `_genArt721Address`. * @param _genArt721Address Art Blocks core contract address for * which this contract will be a minter. * @param _minterFilter Minter filter for which * this will a filtered minter. */ constructor(address _genArt721Address, address _minterFilter) ReentrancyGuard() { genArt721CoreAddress = _genArt721Address; genArtCoreContract = IGenArt721CoreContractV1(_genArt721Address); minterFilterAddress = _minterFilter; minterFilter = IMinterFilterV0(_minterFilter); require( minterFilter.genArt721CoreAddress() == _genArt721Address, "Illegal contract pairing" ); } /** * @notice Sets the maximum invocations of project `_projectId` based * on the value currently defined in the core contract. * @param _projectId Project ID to set the maximum invocations for. * @dev also checks and may refresh projectMaxHasBeenInvoked for project * @dev this enables gas reduction after maxInvocations have been reached - * core contracts shall still enforce a maxInvocation check during mint. */ function setProjectMaxInvocations(uint256 _projectId) external onlyCoreWhitelisted { uint256 invocations; uint256 maxInvocations; (, , invocations, maxInvocations, , , , , ) = genArtCoreContract .projectTokenInfo(_projectId); // update storage with results projectMaxInvocations[_projectId] = maxInvocations; if (invocations < maxInvocations) { projectMaxHasBeenInvoked[_projectId] = false; } } /** * @notice Warning: Disabling purchaseTo is not supported on this minter. * This method exists purely for interface-conformance purposes. */ function togglePurchaseToDisabled(uint256 _projectId) external view onlyArtist(_projectId) { revert("Action not supported"); } /** * @notice Sets the minimum and maximum values that are settable for * `_priceDecayHalfLifeSeconds` across all projects. * @param _minimumPriceDecayHalfLifeSeconds Minimum price decay half life * (in seconds). * @param _maximumPriceDecayHalfLifeSeconds Maximum price decay half life * (in seconds). */ function setAllowablePriceDecayHalfLifeRangeSeconds( uint256 _minimumPriceDecayHalfLifeSeconds, uint256 _maximumPriceDecayHalfLifeSeconds ) external onlyCoreWhitelisted { require( _maximumPriceDecayHalfLifeSeconds > _minimumPriceDecayHalfLifeSeconds, "Maximum half life must be greater than minimum" ); require( _minimumPriceDecayHalfLifeSeconds > 0, "Half life of zero not allowed" ); minimumPriceDecayHalfLifeSeconds = _minimumPriceDecayHalfLifeSeconds; maximumPriceDecayHalfLifeSeconds = _maximumPriceDecayHalfLifeSeconds; emit AuctionHalfLifeRangeSecondsUpdated( _minimumPriceDecayHalfLifeSeconds, _maximumPriceDecayHalfLifeSeconds ); } ////// Auction Functions /** * @notice Sets auction details for project `_projectId`. * @param _projectId Project ID to set auction details for. * @param _auctionTimestampStart Timestamp at which to start the auction. * @param _priceDecayHalfLifeSeconds The half life with which to decay the * price (in seconds). * @param _startPrice Price at which to start the auction, in Wei. * @param _basePrice Resting price of the auction, in Wei. */ function setAuctionDetails( uint256 _projectId, uint256 _auctionTimestampStart, uint256 _priceDecayHalfLifeSeconds, uint256 _startPrice, uint256 _basePrice ) external onlyArtist(_projectId) { AuctionParameters memory auctionParams = projectAuctionParameters[ _projectId ]; require( auctionParams.timestampStart == 0 || block.timestamp < auctionParams.timestampStart, "No modifications mid-auction" ); require( block.timestamp < _auctionTimestampStart, "Only future auctions" ); require( _startPrice > _basePrice, "Auction start price must be greater than auction end price" ); require( (_priceDecayHalfLifeSeconds >= minimumPriceDecayHalfLifeSeconds) && (_priceDecayHalfLifeSeconds <= maximumPriceDecayHalfLifeSeconds), "Price decay half life must fall between min and max allowable values" ); projectAuctionParameters[_projectId] = AuctionParameters( _auctionTimestampStart, _priceDecayHalfLifeSeconds, _startPrice, _basePrice ); emit SetAuctionDetails( _projectId, _auctionTimestampStart, _priceDecayHalfLifeSeconds, _startPrice, _basePrice ); } /** * @notice Resets auction details for project `_projectId`, zero-ing out all * relevant auction fields. Not intended to be used in normal auction * operation, but rather only in case of the need to halt an auction. * @param _projectId Project ID to set auction details for. */ function resetAuctionDetails(uint256 _projectId) external onlyCoreWhitelisted { delete projectAuctionParameters[_projectId]; emit ResetAuctionDetails(_projectId); } /** * @notice Purchases a token from project `_projectId`. * @param _projectId Project ID to mint a token on. * @return tokenId Token ID of minted token */ function purchase(uint256 _projectId) external payable returns (uint256 tokenId) { tokenId = purchaseTo(msg.sender, _projectId); return tokenId; } /** * @notice Purchases a token from project `_projectId` and sets * the token's owner to `_to`. * @param _to Address to be the new token's owner. * @param _projectId Project ID to mint a token on. * @return tokenId Token ID of minted token */ function purchaseTo(address _to, uint256 _projectId) public payable nonReentrant returns (uint256 tokenId) { // CHECKS require( !projectMaxHasBeenInvoked[_projectId], "Maximum number of invocations reached" ); // _getPrice reverts if auction is unconfigured or has not started uint256 currentPriceInWei = _getPrice(_projectId); require( msg.value >= currentPriceInWei, "Must send minimum value to mint!" ); // EFFECTS tokenId = minterFilter.mint(_to, _projectId, msg.sender); // what if projectMaxInvocations[_projectId] is 0 (default value)? // that is intended, so that by default the minter allows infinite transactions, // allowing the artblocks contract to stop minting // uint256 tokenInvocation = tokenId % ONE_MILLION; if ( projectMaxInvocations[_projectId] > 0 && tokenId % ONE_MILLION == projectMaxInvocations[_projectId] - 1 ) { projectMaxHasBeenInvoked[_projectId] = true; } // INTERACTIONS _splitFundsETHAuction(_projectId, currentPriceInWei); return tokenId; } /** * @dev splits ETH funds between sender (if refund), foundation, * artist, and artist's additional payee for a token purchased on * project `_projectId`. * @dev utilizes transfer() to send ETH, which may fail if access * lists are not properly populated when purchasing tokens. * @param _projectId Project ID for which funds shall be split. * @param _currentPriceInWei Current price of token, in Wei. */ function _splitFundsETHAuction( uint256 _projectId, uint256 _currentPriceInWei ) internal { if (msg.value > 0) { uint256 refund = msg.value - _currentPriceInWei; if (refund > 0) { (bool success_, ) = msg.sender.call{value: refund}(""); require(success_, "Refund failed"); } uint256 foundationAmount = (_currentPriceInWei * genArtCoreContract.artblocksPercentage()) / 100; if (foundationAmount > 0) { (bool success_, ) = genArtCoreContract.artblocksAddress().call{ value: foundationAmount }(""); require(success_, "Foundation payment failed"); } uint256 projectFunds = _currentPriceInWei - foundationAmount; uint256 additionalPayeeAmount; if ( genArtCoreContract.projectIdToAdditionalPayeePercentage( _projectId ) > 0 ) { additionalPayeeAmount = (projectFunds * genArtCoreContract.projectIdToAdditionalPayeePercentage( _projectId )) / 100; if (additionalPayeeAmount > 0) { (bool success_, ) = genArtCoreContract .projectIdToAdditionalPayee(_projectId) .call{value: additionalPayeeAmount}(""); require(success_, "Additional payment failed"); } } uint256 creatorFunds = projectFunds - additionalPayeeAmount; if (creatorFunds > 0) { (bool success_, ) = genArtCoreContract .projectIdToArtistAddress(_projectId) .call{value: creatorFunds}(""); require(success_, "Artist payment failed"); } } } /** * @notice Gets price of minting a token on project `_projectId` given * the project's AuctionParameters and current block timestamp. * Reverts if auction has not yet started or auction is unconfigured. * @param _projectId Project ID to get price of token for. * @return current price of token in Wei * @dev This method calculates price decay using a linear interpolation * of exponential decay based on the artist-provided half-life for price * decay, `_priceDecayHalfLifeSeconds`. */ function _getPrice(uint256 _projectId) private view returns (uint256) { AuctionParameters memory auctionParams = projectAuctionParameters[ _projectId ]; require( block.timestamp > auctionParams.timestampStart, "Auction not yet started" ); require( auctionParams.priceDecayHalfLifeSeconds > 0, "Only configured auctions" ); uint256 decayedPrice = auctionParams.startPrice; uint256 elapsedTimeSeconds = block.timestamp - auctionParams.timestampStart; // Divide by two (via bit-shifting) for the number of entirely completed // half-lives that have elapsed since auction start time. decayedPrice >>= elapsedTimeSeconds / auctionParams.priceDecayHalfLifeSeconds; // Perform a linear interpolation between partial half-life points, to // approximate the current place on a perfect exponential decay curve. decayedPrice -= (decayedPrice * (elapsedTimeSeconds % auctionParams.priceDecayHalfLifeSeconds)) / auctionParams.priceDecayHalfLifeSeconds / 2; if (decayedPrice < auctionParams.basePrice) { // Price may not decay below stay `basePrice`. return auctionParams.basePrice; } return decayedPrice; } /** * @notice Gets if price of token is configured, price of minting a * token on project `_projectId`, and currency symbol and address to be * used as payment. Supersedes any core contract price information. * @param _projectId Project ID to get price information for. * @return isConfigured true only if project's auction parameters have been * configured on this minter * @return tokenPriceInWei current price of token on this minter - invalid * if auction has not yet been configured * @return currencySymbol currency symbol for purchases of project on this * minter. This minter always returns "ETH" * @return currencyAddress currency address for purchases of project on * this minter. This minter always returns null address, reserved for ether */ function getPriceInfo(uint256 _projectId) external view returns ( bool isConfigured, uint256 tokenPriceInWei, string memory currencySymbol, address currencyAddress ) { AuctionParameters memory auctionParams = projectAuctionParameters[ _projectId ]; isConfigured = (auctionParams.startPrice > 0); if (block.timestamp <= auctionParams.timestampStart) { // Provide a reasonable value for `tokenPriceInWei` when it would // otherwise revert, using the starting price before auction starts. tokenPriceInWei = auctionParams.startPrice; } else if (auctionParams.startPrice == 0) { // In the case of unconfigured auction, return price of zero when // it would otherwise revert tokenPriceInWei = 0; } else { tokenPriceInWei = _getPrice(_projectId); } currencySymbol = "ETH"; currencyAddress = address(0); } }
// SPDX-License-Identifier: LGPL-3.0-only // Created By: Art Blocks Inc. pragma solidity ^0.8.0; interface IGenArt721CoreContractV1 { // getter function of public variable function admin() external view returns (address); // getter function of public variable function nextProjectId() external view returns (uint256); // getter function of public mapping function tokenIdToProjectId(uint256 tokenId) external view returns (uint256 projectId); function isWhitelisted(address sender) external view returns (bool); // @dev this is not available in V0 function isMintWhitelisted(address minter) external view returns (bool); function projectIdToArtistAddress(uint256 _projectId) external view returns (address payable); function projectIdToAdditionalPayee(uint256 _projectId) external view returns (address payable); function projectIdToAdditionalPayeePercentage(uint256 _projectId) external view returns (uint256); function projectTokenInfo(uint256 _projectId) external view returns ( address, uint256, uint256, uint256, bool, address, uint256, string memory, address ); function artblocksAddress() external view returns (address payable); function artblocksPercentage() external view returns (uint256); function mint( address _to, uint256 _projectId, address _by ) external returns (uint256 tokenId); function getRoyaltyData(uint256 _tokenId) external view returns ( address artistAddress, address additionalPayee, uint256 additionalPayeePercentage, uint256 royaltyFeeByID ); }
// SPDX-License-Identifier: LGPL-3.0-only // Created By: Art Blocks Inc. pragma solidity ^0.8.0; interface IMinterFilterV0 { /** * @notice Approved minter `_minterAddress`. */ event MinterApproved(address indexed _minterAddress, string _minterType); /** * @notice Revoked approval for minter `_minterAddress` */ event MinterRevoked(address indexed _minterAddress); /** * @notice Minter `_minterAddress` of type `_minterType` * registered for project `_projectId`. */ event ProjectMinterRegistered( uint256 indexed _projectId, address indexed _minterAddress, string _minterType ); /** * @notice Any active minter removed for project `_projectId`. */ event ProjectMinterRemoved(uint256 indexed _projectId); function genArt721CoreAddress() external returns (address); function setMinterForProject(uint256, address) external; function removeMinterForProject(uint256) external; function mint( address _to, uint256 _projectId, address sender ) external returns (uint256); function getMinterForProject(uint256) external view returns (address); function projectHasMinter(uint256) external view returns (bool); }
// SPDX-License-Identifier: LGPL-3.0-only // Created By: Art Blocks Inc. pragma solidity ^0.8.0; interface IFilteredMinterV0 { /** * @notice Price per token in wei updated for project `_projectId` to * `_pricePerTokenInWei`. */ event PricePerTokenInWeiUpdated( uint256 indexed _projectId, uint256 indexed _pricePerTokenInWei ); /** * @notice Currency updated for project `_projectId` to symbol * `_currencySymbol` and address `_currencyAddress`. */ event ProjectCurrencyInfoUpdated( uint256 indexed _projectId, address indexed _currencyAddress, string _currencySymbol ); /// togglePurchaseToDisabled updated event PurchaseToDisabledUpdated( uint256 indexed _projectId, bool _purchaseToDisabled ); // getter function of public variable function minterType() external view returns (string memory); function genArt721CoreAddress() external returns (address); function minterFilterAddress() external returns (address); // Triggers a purchase of a token from the desired project, to the // TX-sending address. function purchase(uint256 _projectId) external payable returns (uint256 tokenId); // Triggers a purchase of a token from the desired project, to the specified // receiving address. function purchaseTo(address _to, uint256 _projectId) external payable returns (uint256 tokenId); // Toggles the ability for `purchaseTo` to be called directly with a // specified receiving address that differs from the TX-sending address. function togglePurchaseToDisabled(uint256 _projectId) external; // Called to make the minter contract aware of the max invocations for a // given project. function setProjectMaxInvocations(uint256 _projectId) external; // Gets if token price is configured, token price in wei, currency symbol, // and currency address, assuming this is project's minter. // Supersedes any defined core price. function getPriceInfo(uint256 _projectId) external view returns ( bool isConfigured, uint256 tokenPriceInWei, string memory currencySymbol, address currencyAddress ); }
// 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; } }
{ "optimizer": { "enabled": true, "runs": 100 }, "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":"_genArt721Address","type":"address"},{"internalType":"address","name":"_minterFilter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_minimumPriceDecayHalfLifeSeconds","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_maximumPriceDecayHalfLifeSeconds","type":"uint256"}],"name":"AuctionHalfLifeRangeSecondsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_projectId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_pricePerTokenInWei","type":"uint256"}],"name":"PricePerTokenInWeiUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_projectId","type":"uint256"},{"indexed":true,"internalType":"address","name":"_currencyAddress","type":"address"},{"indexed":false,"internalType":"string","name":"_currencySymbol","type":"string"}],"name":"ProjectCurrencyInfoUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_projectId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_purchaseToDisabled","type":"bool"}],"name":"PurchaseToDisabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"ResetAuctionDetails","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"projectId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_auctionTimestampStart","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_priceDecayHalfLifeSeconds","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_startPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_basePrice","type":"uint256"}],"name":"SetAuctionDetails","type":"event"},{"inputs":[],"name":"genArt721CoreAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_projectId","type":"uint256"}],"name":"getPriceInfo","outputs":[{"internalType":"bool","name":"isConfigured","type":"bool"},{"internalType":"uint256","name":"tokenPriceInWei","type":"uint256"},{"internalType":"string","name":"currencySymbol","type":"string"},{"internalType":"address","name":"currencyAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumPriceDecayHalfLifeSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumPriceDecayHalfLifeSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minterFilterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minterType","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"projectAuctionParameters","outputs":[{"internalType":"uint256","name":"timestampStart","type":"uint256"},{"internalType":"uint256","name":"priceDecayHalfLifeSeconds","type":"uint256"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"basePrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"projectMaxHasBeenInvoked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"projectMaxInvocations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_projectId","type":"uint256"}],"name":"purchase","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_projectId","type":"uint256"}],"name":"purchaseTo","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_projectId","type":"uint256"}],"name":"resetAuctionDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumPriceDecayHalfLifeSeconds","type":"uint256"},{"internalType":"uint256","name":"_maximumPriceDecayHalfLifeSeconds","type":"uint256"}],"name":"setAllowablePriceDecayHalfLifeRangeSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_projectId","type":"uint256"},{"internalType":"uint256","name":"_auctionTimestampStart","type":"uint256"},{"internalType":"uint256","name":"_priceDecayHalfLifeSeconds","type":"uint256"},{"internalType":"uint256","name":"_startPrice","type":"uint256"},{"internalType":"uint256","name":"_basePrice","type":"uint256"}],"name":"setAuctionDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_projectId","type":"uint256"}],"name":"setProjectMaxInvocations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_projectId","type":"uint256"}],"name":"togglePurchaseToDisabled","outputs":[],"stateMutability":"view","type":"function"}]
Contract Creation Code
61010060405261012c600355610e106004553480156200001e57600080fd5b5060405162001da838038062001da8833981016040819052620000419162000163565b600160009081556001600160a01b03808416608081905260a081905290831660c081905260e0819052604080516392a10f8360e01b81529051929391926392a10f8392600480840193602093929083900390910190829087803b158015620000a857600080fd5b505af1158015620000bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e391906200019b565b6001600160a01b0316146200013e5760405162461bcd60e51b815260206004820152601860248201527f496c6c6567616c20636f6e74726163742070616972696e670000000000000000604482015260640160405180910390fd5b5050620001c0565b80516001600160a01b03811681146200015e57600080fd5b919050565b600080604083850312156200017757600080fd5b620001828362000146565b9150620001926020840162000146565b90509250929050565b600060208284031215620001ae57600080fd5b620001b98262000146565b9392505050565b60805160a05160c05160e051611b616200024760003960006107a8015260006102fe0152600081816103b0015281816104c1015281816108b801528181610a6e01528181610dca01528181610e8e015281816111540152818161120301528181611343015281816113fe015281816114b50152611602015260006102670152611b616000f3fe6080604052600436106100d35760003560e01c806392a10f831161007a57806392a10f8314610255578063c0ad212e14610296578063cd379f6e146102b6578063cf6681ea146102d6578063dd85582f146102ec578063e9d1e8ac14610320578063efef39a114610366578063f7bd4b881461037957600080fd5b80632aedc28e146100d85780632f077ee6146100fa57806340d1397e14610161578063462add461461018157806356690aaf146101c15780635bc1470f146101fc578063774159c614610212578063891407c014610242575b600080fd5b3480156100e457600080fd5b506100f86100f3366004611728565b610399565b005b34801561010657600080fd5b5061013c610115366004611728565b60056020526000908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b34801561016d57600080fd5b506100f861017c366004611728565b6104a9565b34801561018d57600080fd5b506101b161019c366004611728565b60016020526000908152604090205460ff1681565b6040519015158152602001610158565b3480156101cd57600080fd5b506101ee6101dc366004611728565b60026020526000908152604090205481565b604051908152602001610158565b34801561020857600080fd5b506101ee60045481565b34801561021e57600080fd5b5061023261022d366004611728565b6105b2565b604051610158949392919061179d565b6101ee6102503660046117ef565b610658565b34801561026157600080fd5b506102897f000000000000000000000000000000000000000000000000000000000000000081565b604051610158919061181b565b3480156102a257600080fd5b506100f86102b136600461182f565b6108a1565b3480156102c257600080fd5b506100f86102d1366004611851565b610a56565b3480156102e257600080fd5b506101ee60035481565b3480156102f857600080fd5b506102897f000000000000000000000000000000000000000000000000000000000000000081565b34801561032c57600080fd5b506103596040518060400160405280600d81526020016c4d696e7465724441457870563160981b81525081565b604051610158919061188c565b6101ee610374366004611728565b610da1565b34801561038557600080fd5b506100f8610394366004611728565b610db3565b604051633af32abf60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633af32abf906103e590339060040161181b565b60206040518083038186803b1580156103fd57600080fd5b505afa158015610411573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043591906118bb565b61045a5760405162461bcd60e51b8152600401610451906118d6565b60405180910390fd5b60008181526005602052604080822082815560018101839055600281018390556003018290555182917f2de6b284414d2e6b72bcc8d8d4de934e3f6410660a8f677c5c978f17f9cc2a9291a250565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb9060240160206040518083038186803b15801561050b57600080fd5b505afa15801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190611905565b6001600160a01b0316336001600160a01b0316146105735760405162461bcd60e51b815260040161045190611922565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610451565b600081815260056020908152604080832081516080810183528154808252600183015494820194909452600282015492810183905260039091015460608281019190915291151593928391904211610610578060400151935061062e565b6040810151610622576000935061062e565b61062b86610f4d565b93505b6040518060400160405280600381526020016208aa8960eb1b815250925060009150509193509193565b6000600260005414156106ad5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610451565b600260009081558281526001602052604090205460ff161561071f5760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610451565b600061072a83610f4d565b90508034101561077c5760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610451565b604051630d4d151360e01b81526001600160a01b038581166004830152602482018590523360448301527f00000000000000000000000000000000000000000000000000000000000000001690630d4d151390606401602060405180830381600087803b1580156107ec57600080fd5b505af1158015610800573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108249190611947565b60008481526002602052604090205490925015801590610869575060008381526002602052604090205461085a90600190611976565b610867620f4240846119a3565b145b1561088b576000838152600160208190526040909120805460ff191690911790555b61089583826110aa565b50600160005592915050565b604051633af32abf60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633af32abf906108ed90339060040161181b565b60206040518083038186803b15801561090557600080fd5b505afa158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d91906118bb565b6109595760405162461bcd60e51b8152600401610451906118d6565b8181116109bf5760405162461bcd60e51b815260206004820152602e60248201527f4d6178696d756d2068616c66206c696665206d7573742062652067726561746560448201526d72207468616e206d696e696d756d60901b6064820152608401610451565b60008211610a0f5760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f7765640000006044820152606401610451565b6003829055600481905560408051838152602081018390527f1d5d9c9b660aace5432c6c7412456d0ad1b5ff4c6ea156a8c551ba93555ed73f910160405180910390a15050565b60405163a47d29cb60e01b81526004810186905285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb9060240160206040518083038186803b158015610ab857600080fd5b505afa158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af09190611905565b6001600160a01b0316336001600160a01b031614610b205760405162461bcd60e51b815260040161045190611922565b600086815260056020908152604091829020825160808101845281548082526001830154938201939093526002820154938101939093526003015460608301521580610b6c5750805142105b610bb85760405162461bcd60e51b815260206004820152601c60248201527f4e6f206d6f64696669636174696f6e73206d69642d61756374696f6e000000006044820152606401610451565b854210610bfe5760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b6044820152606401610451565b828411610c735760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d757374206265206772656160448201527f746572207468616e2061756374696f6e20656e642070726963650000000000006064820152608401610451565b6003548510158015610c8757506004548511155b610d075760405162461bcd60e51b8152602060048201526044602482018190527f50726963652064656361792068616c66206c696665206d7573742066616c6c20908201527f6265747765656e206d696e20616e64206d617820616c6c6f7761626c652076616064820152636c75657360e01b608482015260a401610451565b6040805160808082018352888252602080830189815283850189815260608086018a815260008f815260058652889020965187559251600187015590516002860155905160039094019390935583518a815290810189905292830187905290820185905288917f38b3058b75696f9e45bffa9c4b237adcde13d74c7bc1bea63e13c712d0776c74910160405180910390a250505050505050565b6000610dad3383610658565b92915050565b604051633af32abf60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633af32abf90610dff90339060040161181b565b60206040518083038186803b158015610e1757600080fd5b505afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f91906118bb565b610e6b5760405162461bcd60e51b8152600401610451906118d6565b6040516346161b1160e11b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638c2c36229060240160006040518083038186803b158015610ed057600080fd5b505afa158015610ee4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f0c91908101906119d8565b505050600089815260026020526040902083905550919550935050505080821015610f48576000838152600160205260409020805460ff191690555b505050565b600081815260056020908152604080832081516080810183528154808252600183015494820194909452600282015492810192909252600301546060820152904211610fd55760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b6044820152606401610451565b60008160200151116110245760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b6044820152606401610451565b604081015181516000906110389042611976565b905082602001518161104a9190611af8565b602084015192901c9160029061106081846119a3565b61106a9085611b0c565b6110749190611af8565b61107e9190611af8565b6110889083611976565b915082606001518210156110a25750506060015192915050565b509392505050565b34156117245760006110bc8234611976565b9050801561114e57604051600090339083908381818185875af1925050503d8060008114611106576040519150601f19603f3d011682016040523d82523d6000602084013e61110b565b606091505b505090508061114c5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610451565b505b600060647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634f029c396040518163ffffffff1660e01b815260040160206040518083038186803b1580156111ab57600080fd5b505afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190611947565b6111ed9085611b0c565b6111f79190611af8565b905080156113305760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633949f9066040518163ffffffff1660e01b815260040160206040518083038186803b15801561125a57600080fd5b505afa15801561126e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112929190611905565b6001600160a01b03168260405160006040518083038185875af1925050503d80600081146112dc576040519150601f19603f3d011682016040523d82523d6000602084013e6112e1565b606091505b505090508061132e5760405162461bcd60e51b8152602060048201526019602482015278119bdd5b99185d1a5bdb881c185e5b595b9d0819985a5b1959603a1b6044820152606401610451565b505b600061133c8285611976565b90506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc74234b886040518263ffffffff1660e01b815260040161138f91815260200190565b60206040518083038186803b1580156113a757600080fd5b505afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611947565b11156115d55760405163cc74234b60e01b8152600481018790526064907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063cc74234b9060240160206040518083038186803b15801561144857600080fd5b505afa15801561145c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190611947565b61148a9084611b0c565b6114949190611af8565b905080156115d557604051636bd8225b60e11b8152600481018790526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d7b044b69060240160206040518083038186803b1580156114ff57600080fd5b505afa158015611513573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115379190611905565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114611581576040519150601f19603f3d011682016040523d82523d6000602084013e611586565b606091505b50509050806115d35760405162461bcd60e51b81526020600482015260196024820152781059191a5d1a5bdb985b081c185e5b595b9d0819985a5b1959603a1b6044820152606401610451565b505b60006115e18284611976565b9050801561171e5760405163a47d29cb60e01b8152600481018890526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb9060240160206040518083038186803b15801561164c57600080fd5b505afa158015611660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116849190611905565b6001600160a01b03168260405160006040518083038185875af1925050503d80600081146116ce576040519150601f19603f3d011682016040523d82523d6000602084013e6116d3565b606091505b505090508061171c5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610451565b505b50505050505b5050565b60006020828403121561173a57600080fd5b5035919050565b60005b8381101561175c578181015183820152602001611744565b8381111561176b576000848401525b50505050565b60008151808452611789816020860160208601611741565b601f01601f19169290920160200192915050565b84151581528360208201526080604082015260006117be6080830185611771565b905060018060a01b038316606083015295945050505050565b6001600160a01b03811681146117ec57600080fd5b50565b6000806040838503121561180257600080fd5b823561180d816117d7565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806040838503121561184257600080fd5b50508035926020909101359150565b600080600080600060a0868803121561186957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60208152600061189f6020830184611771565b9392505050565b805180151581146118b657600080fd5b919050565b6000602082840312156118cd57600080fd5b61189f826118a6565b60208082526015908201527413db9b1e4810dbdc99481dda1a5d195b1a5cdd1959605a1b604082015260600190565b60006020828403121561191757600080fd5b815161189f816117d7565b6020808252600b908201526a13db9b1e48105c9d1a5cdd60aa1b604082015260600190565b60006020828403121561195957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561198857611988611960565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826119b2576119b261198d565b500690565b80516118b6816117d7565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060008060006101208a8c0312156119f757600080fd5b8951611a02816117d7565b8099505060208a0151975060408a0151965060608a01519550611a2760808b016118a6565b945060a08a0151611a37816117d7565b60c08b015160e08c0151919550935067ffffffffffffffff80821115611a5c57600080fd5b818c0191508c601f830112611a7057600080fd5b815181811115611a8257611a826119c2565b604051601f8201601f19908116603f01168101908382118183101715611aaa57611aaa6119c2565b816040528281528f6020848701011115611ac357600080fd5b611ad4836020830160208801611741565b8096505050505050611ae96101008b016119b7565b90509295985092959850929598565b600082611b0757611b0761198d565b500490565b6000816000190483118215151615611b2657611b26611960565b50029056fea2646970667358221220b9b35f02fa3a601ed18e0dca013704235de8fe461ea2e05c7ba5d65f9abea03a64736f6c6343000809003300000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec11000000000000000000000000267313e435863f15285cf0f8572068aaa62fc40d
Deployed Bytecode
0x6080604052600436106100d35760003560e01c806392a10f831161007a57806392a10f8314610255578063c0ad212e14610296578063cd379f6e146102b6578063cf6681ea146102d6578063dd85582f146102ec578063e9d1e8ac14610320578063efef39a114610366578063f7bd4b881461037957600080fd5b80632aedc28e146100d85780632f077ee6146100fa57806340d1397e14610161578063462add461461018157806356690aaf146101c15780635bc1470f146101fc578063774159c614610212578063891407c014610242575b600080fd5b3480156100e457600080fd5b506100f86100f3366004611728565b610399565b005b34801561010657600080fd5b5061013c610115366004611728565b60056020526000908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b34801561016d57600080fd5b506100f861017c366004611728565b6104a9565b34801561018d57600080fd5b506101b161019c366004611728565b60016020526000908152604090205460ff1681565b6040519015158152602001610158565b3480156101cd57600080fd5b506101ee6101dc366004611728565b60026020526000908152604090205481565b604051908152602001610158565b34801561020857600080fd5b506101ee60045481565b34801561021e57600080fd5b5061023261022d366004611728565b6105b2565b604051610158949392919061179d565b6101ee6102503660046117ef565b610658565b34801561026157600080fd5b506102897f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec1181565b604051610158919061181b565b3480156102a257600080fd5b506100f86102b136600461182f565b6108a1565b3480156102c257600080fd5b506100f86102d1366004611851565b610a56565b3480156102e257600080fd5b506101ee60035481565b3480156102f857600080fd5b506102897f000000000000000000000000267313e435863f15285cf0f8572068aaa62fc40d81565b34801561032c57600080fd5b506103596040518060400160405280600d81526020016c4d696e7465724441457870563160981b81525081565b604051610158919061188c565b6101ee610374366004611728565b610da1565b34801561038557600080fd5b506100f8610394366004611728565b610db3565b604051633af32abf60e01b81526001600160a01b037f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec111690633af32abf906103e590339060040161181b565b60206040518083038186803b1580156103fd57600080fd5b505afa158015610411573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043591906118bb565b61045a5760405162461bcd60e51b8152600401610451906118d6565b60405180910390fd5b60008181526005602052604080822082815560018101839055600281018390556003018290555182917f2de6b284414d2e6b72bcc8d8d4de934e3f6410660a8f677c5c978f17f9cc2a9291a250565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec116001600160a01b03169063a47d29cb9060240160206040518083038186803b15801561050b57600080fd5b505afa15801561051f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105439190611905565b6001600160a01b0316336001600160a01b0316146105735760405162461bcd60e51b815260040161045190611922565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610451565b600081815260056020908152604080832081516080810183528154808252600183015494820194909452600282015492810183905260039091015460608281019190915291151593928391904211610610578060400151935061062e565b6040810151610622576000935061062e565b61062b86610f4d565b93505b6040518060400160405280600381526020016208aa8960eb1b815250925060009150509193509193565b6000600260005414156106ad5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610451565b600260009081558281526001602052604090205460ff161561071f5760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610451565b600061072a83610f4d565b90508034101561077c5760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610451565b604051630d4d151360e01b81526001600160a01b038581166004830152602482018590523360448301527f000000000000000000000000267313e435863f15285cf0f8572068aaa62fc40d1690630d4d151390606401602060405180830381600087803b1580156107ec57600080fd5b505af1158015610800573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108249190611947565b60008481526002602052604090205490925015801590610869575060008381526002602052604090205461085a90600190611976565b610867620f4240846119a3565b145b1561088b576000838152600160208190526040909120805460ff191690911790555b61089583826110aa565b50600160005592915050565b604051633af32abf60e01b81526001600160a01b037f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec111690633af32abf906108ed90339060040161181b565b60206040518083038186803b15801561090557600080fd5b505afa158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d91906118bb565b6109595760405162461bcd60e51b8152600401610451906118d6565b8181116109bf5760405162461bcd60e51b815260206004820152602e60248201527f4d6178696d756d2068616c66206c696665206d7573742062652067726561746560448201526d72207468616e206d696e696d756d60901b6064820152608401610451565b60008211610a0f5760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f7765640000006044820152606401610451565b6003829055600481905560408051838152602081018390527f1d5d9c9b660aace5432c6c7412456d0ad1b5ff4c6ea156a8c551ba93555ed73f910160405180910390a15050565b60405163a47d29cb60e01b81526004810186905285907f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec116001600160a01b03169063a47d29cb9060240160206040518083038186803b158015610ab857600080fd5b505afa158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af09190611905565b6001600160a01b0316336001600160a01b031614610b205760405162461bcd60e51b815260040161045190611922565b600086815260056020908152604091829020825160808101845281548082526001830154938201939093526002820154938101939093526003015460608301521580610b6c5750805142105b610bb85760405162461bcd60e51b815260206004820152601c60248201527f4e6f206d6f64696669636174696f6e73206d69642d61756374696f6e000000006044820152606401610451565b854210610bfe5760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b6044820152606401610451565b828411610c735760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d757374206265206772656160448201527f746572207468616e2061756374696f6e20656e642070726963650000000000006064820152608401610451565b6003548510158015610c8757506004548511155b610d075760405162461bcd60e51b8152602060048201526044602482018190527f50726963652064656361792068616c66206c696665206d7573742066616c6c20908201527f6265747765656e206d696e20616e64206d617820616c6c6f7761626c652076616064820152636c75657360e01b608482015260a401610451565b6040805160808082018352888252602080830189815283850189815260608086018a815260008f815260058652889020965187559251600187015590516002860155905160039094019390935583518a815290810189905292830187905290820185905288917f38b3058b75696f9e45bffa9c4b237adcde13d74c7bc1bea63e13c712d0776c74910160405180910390a250505050505050565b6000610dad3383610658565b92915050565b604051633af32abf60e01b81526001600160a01b037f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec111690633af32abf90610dff90339060040161181b565b60206040518083038186803b158015610e1757600080fd5b505afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f91906118bb565b610e6b5760405162461bcd60e51b8152600401610451906118d6565b6040516346161b1160e11b81526004810182905260009081906001600160a01b037f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec111690638c2c36229060240160006040518083038186803b158015610ed057600080fd5b505afa158015610ee4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f0c91908101906119d8565b505050600089815260026020526040902083905550919550935050505080821015610f48576000838152600160205260409020805460ff191690555b505050565b600081815260056020908152604080832081516080810183528154808252600183015494820194909452600282015492810192909252600301546060820152904211610fd55760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b6044820152606401610451565b60008160200151116110245760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b6044820152606401610451565b604081015181516000906110389042611976565b905082602001518161104a9190611af8565b602084015192901c9160029061106081846119a3565b61106a9085611b0c565b6110749190611af8565b61107e9190611af8565b6110889083611976565b915082606001518210156110a25750506060015192915050565b509392505050565b34156117245760006110bc8234611976565b9050801561114e57604051600090339083908381818185875af1925050503d8060008114611106576040519150601f19603f3d011682016040523d82523d6000602084013e61110b565b606091505b505090508061114c5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610451565b505b600060647f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec116001600160a01b0316634f029c396040518163ffffffff1660e01b815260040160206040518083038186803b1580156111ab57600080fd5b505afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190611947565b6111ed9085611b0c565b6111f79190611af8565b905080156113305760007f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec116001600160a01b0316633949f9066040518163ffffffff1660e01b815260040160206040518083038186803b15801561125a57600080fd5b505afa15801561126e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112929190611905565b6001600160a01b03168260405160006040518083038185875af1925050503d80600081146112dc576040519150601f19603f3d011682016040523d82523d6000602084013e6112e1565b606091505b505090508061132e5760405162461bcd60e51b8152602060048201526019602482015278119bdd5b99185d1a5bdb881c185e5b595b9d0819985a5b1959603a1b6044820152606401610451565b505b600061133c8285611976565b90506000807f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec116001600160a01b031663cc74234b886040518263ffffffff1660e01b815260040161138f91815260200190565b60206040518083038186803b1580156113a757600080fd5b505afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611947565b11156115d55760405163cc74234b60e01b8152600481018790526064907f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec116001600160a01b03169063cc74234b9060240160206040518083038186803b15801561144857600080fd5b505afa15801561145c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114809190611947565b61148a9084611b0c565b6114949190611af8565b905080156115d557604051636bd8225b60e11b8152600481018790526000907f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec116001600160a01b03169063d7b044b69060240160206040518083038186803b1580156114ff57600080fd5b505afa158015611513573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115379190611905565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114611581576040519150601f19603f3d011682016040523d82523d6000602084013e611586565b606091505b50509050806115d35760405162461bcd60e51b81526020600482015260196024820152781059191a5d1a5bdb985b081c185e5b595b9d0819985a5b1959603a1b6044820152606401610451565b505b60006115e18284611976565b9050801561171e5760405163a47d29cb60e01b8152600481018890526000907f00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec116001600160a01b03169063a47d29cb9060240160206040518083038186803b15801561164c57600080fd5b505afa158015611660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116849190611905565b6001600160a01b03168260405160006040518083038185875af1925050503d80600081146116ce576040519150601f19603f3d011682016040523d82523d6000602084013e6116d3565b606091505b505090508061171c5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610451565b505b50505050505b5050565b60006020828403121561173a57600080fd5b5035919050565b60005b8381101561175c578181015183820152602001611744565b8381111561176b576000848401525b50505050565b60008151808452611789816020860160208601611741565b601f01601f19169290920160200192915050565b84151581528360208201526080604082015260006117be6080830185611771565b905060018060a01b038316606083015295945050505050565b6001600160a01b03811681146117ec57600080fd5b50565b6000806040838503121561180257600080fd5b823561180d816117d7565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806040838503121561184257600080fd5b50508035926020909101359150565b600080600080600060a0868803121561186957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60208152600061189f6020830184611771565b9392505050565b805180151581146118b657600080fd5b919050565b6000602082840312156118cd57600080fd5b61189f826118a6565b60208082526015908201527413db9b1e4810dbdc99481dda1a5d195b1a5cdd1959605a1b604082015260600190565b60006020828403121561191757600080fd5b815161189f816117d7565b6020808252600b908201526a13db9b1e48105c9d1a5cdd60aa1b604082015260600190565b60006020828403121561195957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561198857611988611960565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826119b2576119b261198d565b500690565b80516118b6816117d7565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060008060006101208a8c0312156119f757600080fd5b8951611a02816117d7565b8099505060208a0151975060408a0151965060608a01519550611a2760808b016118a6565b945060a08a0151611a37816117d7565b60c08b015160e08c0151919550935067ffffffffffffffff80821115611a5c57600080fd5b818c0191508c601f830112611a7057600080fd5b815181811115611a8257611a826119c2565b604051601f8201601f19908116603f01168101908382118183101715611aaa57611aaa6119c2565b816040528281528f6020848701011115611ac357600080fd5b611ad4836020830160208801611741565b8096505050505050611ae96101008b016119b7565b90509295985092959850929598565b600082611b0757611b0761198d565b500490565b6000816000190483118215151615611b2657611b26611960565b50029056fea2646970667358221220b9b35f02fa3a601ed18e0dca013704235de8fe461ea2e05c7ba5d65f9abea03a64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec11000000000000000000000000267313e435863f15285cf0f8572068aaa62fc40d
-----Decoded View---------------
Arg [0] : _genArt721Address (address): 0x64780CE53f6e966E18a22Af13a2F97369580Ec11
Arg [1] : _minterFilter (address): 0x267313E435863f15285CF0f8572068aAA62fC40d
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000064780ce53f6e966e18a22af13a2f97369580ec11
Arg [1] : 000000000000000000000000267313e435863f15285cf0f8572068aaa62fc40d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.