Overview
ETH Balance
0.09857 ETH
Eth Value
$343.42 (@ $3,484.05/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 127 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Public Sale Mint | 15104498 | 745 days ago | IN | 0.00001 ETH | 0.00880115 | ||||
Public Sale Mint | 15076572 | 749 days ago | IN | 0.00001 ETH | 0.01201484 | ||||
Public Sale Mint | 15074422 | 749 days ago | IN | 0.00005 ETH | 0.02421148 | ||||
Public Sale Mint | 15073332 | 749 days ago | IN | 0.00001 ETH | 0.00711042 | ||||
Public Sale Mint | 15072820 | 750 days ago | IN | 0.00002 ETH | 0.02293455 | ||||
Public Sale Mint | 15065875 | 751 days ago | IN | 0.00001 ETH | 0.00488982 | ||||
Public Sale Mint | 15065494 | 751 days ago | IN | 0.00004 ETH | 0.01197677 | ||||
Public Sale Mint | 15064937 | 751 days ago | IN | 0.00005 ETH | 0.02106193 | ||||
Public Sale Mint | 15051032 | 753 days ago | IN | 0.00005 ETH | 0.00151239 | ||||
Public Sale Mint | 15044863 | 754 days ago | IN | 0.00001 ETH | 0.01210493 | ||||
Public Sale Mint | 15044364 | 754 days ago | IN | 0.00002 ETH | 0.01890092 | ||||
Public Sale Mint | 15043943 | 754 days ago | IN | 0.00001 ETH | 0.01975417 | ||||
Public Sale Mint | 15043156 | 754 days ago | IN | 0.00001 ETH | 0.04390062 | ||||
Public Sale Mint | 15042221 | 755 days ago | IN | 0.00005 ETH | 0.00544438 | ||||
Public Sale Mint | 15042032 | 755 days ago | IN | 0.00001 ETH | 0.01981773 | ||||
Public Sale Mint | 15042030 | 755 days ago | IN | 0.00005 ETH | 0.07345499 | ||||
Public Sale Mint | 15041978 | 755 days ago | IN | 0.00001 ETH | 0.02438102 | ||||
Public Sale Mint | 15041896 | 755 days ago | IN | 0.00004 ETH | 0.06434592 | ||||
Public Sale Mint | 15041865 | 755 days ago | IN | 0.00005 ETH | 0.02122944 | ||||
Public Sale Mint | 15041849 | 755 days ago | IN | 0.00005 ETH | 0.00785424 | ||||
Public Sale Mint | 15041839 | 755 days ago | IN | 0.00001 ETH | 0.03131152 | ||||
Public Sale Mint | 15041838 | 755 days ago | IN | 0.00002 ETH | 0.05329 | ||||
Public Sale Mint | 15041835 | 755 days ago | IN | 0.00005 ETH | 0.11797149 | ||||
Public Sale Mint | 15041835 | 755 days ago | IN | 0.00005 ETH | 0.11797149 | ||||
Public Sale Mint | 15041818 | 755 days ago | IN | 0.00002 ETH | 0.03077021 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
15065494 | 751 days ago | 0.00001 ETH | ||||
15041896 | 755 days ago | 0.00001 ETH | ||||
15041483 | 755 days ago | 0.00198 ETH | ||||
15041427 | 755 days ago | 0.00198 ETH | ||||
15041133 | 755 days ago | 0.06801 ETH | ||||
15041124 | 755 days ago | 0.00001 ETH | ||||
14912501 | 777 days ago | 2.4996 ETH | ||||
14860958 | 786 days ago | 0.00001 ETH | ||||
14859085 | 786 days ago | 0.00001 ETH | ||||
14841325 | 789 days ago | 0.00001 ETH | ||||
14841261 | 789 days ago | 0.00001 ETH | ||||
14840739 | 789 days ago | 0.00001 ETH | ||||
14840485 | 789 days ago | 0.00001 ETH | ||||
14840230 | 789 days ago | 0.00001 ETH | ||||
14839614 | 789 days ago | 0.00001 ETH | ||||
14833139 | 790 days ago | 0.00001 ETH | ||||
14831575 | 791 days ago | 0.00001 ETH | ||||
14831564 | 791 days ago | 0.00001 ETH | ||||
14830997 | 791 days ago | 0.00001 ETH | ||||
14830517 | 791 days ago | 0.00001 ETH | ||||
14830223 | 791 days ago | 0.00001 ETH | ||||
14829948 | 791 days ago | 0.00001 ETH | ||||
14828221 | 791 days ago | 0.00001 ETH | ||||
14828176 | 791 days ago | 0.00001 ETH | ||||
14828166 | 791 days ago | 0.00001 ETH |
Loading...
Loading
Contract Name:
AvvenireAuction
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT /** *@title Avvenire ERC721 Contract */ pragma solidity ^0.8.4; import "AvvenireCitizensInterface.sol"; import "Ownable.sol"; import "Strings.sol"; import "ReentrancyGuard.sol"; contract AvvenireAuction is Ownable, ReentrancyGuard { // mint information uint256 public maxPerAddressDuringWhiteList; uint256 public amountForTeam; // Amount of NFTs for team uint256 public amountForAuctionAndTeam; // Amount of NFTs for the team and auction uint256 public collectionSize; // Total collection size // AvvenireCitizensERC721 contract AvvenireCitizensInterface avvenireCitizens; struct SaleConfig { uint32 auctionSaleStartTime; uint32 publicSaleStartTime; uint64 mintlistPrice; uint64 publicPrice; uint32 publicSaleKey; } SaleConfig public saleConfig; // whitelist mapping (address => amount they can mint) mapping(address => uint256) public allowlist; // Mappings used to calculate the amount to refund a user from the dutch auctin mapping(address => uint256) public totalPaidDuringAuction; mapping(address => uint256) public numberMintedDuringAuction; /** * @notice Constructor calls on ERC721A constructor and sets the previously defined global variables * @param maxPerAddressDuringWhiteList_ the number for the max batch size and max # of NFTs per address during the whiteList * @param collectionSize_ the number of NFTs in the collection * @param amountForTeam_ the number of NFTs for the team * @param amountForAuctionAndTeam_ specifies total amount to auction + the total amount for the team * @param avvenireCitizensContractAddress_ address for AvvenireCitizensERC721 contract */ constructor( uint256 maxPerAddressDuringWhiteList_, uint256 collectionSize_, uint256 amountForAuctionAndTeam_, uint256 amountForTeam_, address avvenireCitizensContractAddress_ ) { maxPerAddressDuringWhiteList = maxPerAddressDuringWhiteList_; amountForAuctionAndTeam = amountForAuctionAndTeam_; amountForTeam = amountForTeam_; collectionSize = collectionSize_; // set avvenire citizens address avvenireCitizens = AvvenireCitizensInterface( avvenireCitizensContractAddress_ ); require( amountForAuctionAndTeam_ <= collectionSize_, "larger collection size needed" ); } /** Modifier to make sure that the caller is a user and not another contract */ modifier callerIsUser() { require(tx.origin == msg.sender, "The caller is another contract."); _; } /** * @notice function used to mint during the auction * @param quantity is the quantity to mint */ function auctionMint(uint256 quantity) external payable callerIsUser { uint256 _saleStartTime = uint256(saleConfig.auctionSaleStartTime); // Require that the current time is past the designated start time require( _saleStartTime != 0 && block.timestamp >= _saleStartTime, "sale has not started yet" ); // Require that quantity does not exceed designated amount require( avvenireCitizens.getTotalSupply() + quantity <= amountForAuctionAndTeam, "not enough remaining reserved for auction to support desired mint amount" ); uint256 totalCost = getAuctionPrice() * quantity; // total amount of ETH needed for the transaction avvenireCitizens.safeMint(msg.sender, quantity); //Add to numberMinted mapping numberMintedDuringAuction[msg.sender] = numberMintedDuringAuction[msg.sender] + quantity; //Add to totalPaid mapping totalPaidDuringAuction[msg.sender] = totalPaidDuringAuction[msg.sender] + totalCost; refundIfOver(totalCost); // make sure to refund the excess } /** * @notice function to mint for allow list * @param quantity amount to mint for whitelisted users */ function whiteListMint(uint256 quantity) external payable callerIsUser { // Sets the price var to the mintlistPrice, which was set by endAuctionAndSetupNonAuctionSaleInfo(...) // mintlistPrice will be set to 30% below the publicSalePrice uint256 price = uint256(saleConfig.mintlistPrice); require(price != 0, "Allowlist sale has not begun yet"); require(allowlist[msg.sender] > 0, "not eligible for allowlist mint"); require( avvenireCitizens.getTotalSupply() + quantity <= collectionSize, "Reached max supply" ); require(quantity <= allowlist[msg.sender], "Can not mint this many"); allowlist[msg.sender] = allowlist[msg.sender] - quantity; avvenireCitizens.safeMint(msg.sender, quantity); uint256 totalCost = quantity * price; refundIfOver(totalCost); } /** * @notice mint function for the public sale * @param quantity quantity to mint * @param callerPublicSaleKey the key for the public sale */ function publicSaleMint(uint256 quantity, uint256 callerPublicSaleKey) external payable callerIsUser { SaleConfig memory config = saleConfig; uint256 publicSaleKey = uint256(config.publicSaleKey); // log the key uint256 publicPrice = uint256(config.publicPrice); // get the price uint256 publicSaleStartTime = uint256(config.publicSaleStartTime); require( publicSaleKey == callerPublicSaleKey, "called with incorrect public sale key" ); require( isPublicSaleOn(publicPrice, publicSaleKey, publicSaleStartTime), "public sale has not begun yet" ); require( avvenireCitizens.getTotalSupply() + quantity <= collectionSize, "reached max supply" ); avvenireCitizens.safeMint(msg.sender, quantity); uint256 totalCost = publicPrice * quantity; refundIfOver(totalCost); } /** * @notice private function that refunds a user if msg.value > totalCost * @param price current price */ function refundIfOver(uint256 price) private { require(msg.value >= price, "Need to send more ETH"); if (msg.value > price) { payable(msg.sender).transfer(msg.value - price); } } /** * @notice function that user can call to be refunded */ function refundMe() external callerIsUser nonReentrant { uint256 endingPrice = saleConfig.publicPrice; require(endingPrice > 0, "public price not set yet"); uint256 actualCost = endingPrice * numberMintedDuringAuction[msg.sender]; int256 reimbursement = int256(totalPaidDuringAuction[msg.sender]) - int256(actualCost); require(reimbursement > 0, "You are not eligible for a refund"); totalPaidDuringAuction[msg.sender] = 0; (bool success, ) = msg.sender.call{value: uint256(reimbursement)}(""); require(success, "Refund failed"); } /** * @notice function to refund user on the price they paid * @param toRefund the address to refund */ function refund(address toRefund) external onlyOwner nonReentrant { uint256 endingPrice = saleConfig.publicPrice; require(endingPrice > 0, "public price not set yet"); uint256 actualCost = endingPrice * numberMintedDuringAuction[toRefund]; int256 reimbursement = int256(totalPaidDuringAuction[toRefund]) - int256(actualCost); require(reimbursement > 0, "Not eligible for a refund"); totalPaidDuringAuction[toRefund] = 0; (bool success, ) = toRefund.call{value: uint256(reimbursement)}(""); require(success, "Refund failed"); } /** * @notice function that returns a boolean indicating whtether the public sale is enabled * @param publicPriceWei must sell for more than 0 * @param publicSaleKey must have a key that is non-zero * @param publicSaleStartTime must be past the public start time */ function isPublicSaleOn( // check if the public sale is on uint256 publicPriceWei, uint256 publicSaleKey, uint256 publicSaleStartTime ) public view returns (bool) { return publicPriceWei != 0 && publicSaleKey != 0 && block.timestamp >= publicSaleStartTime; } uint256 public constant AUCTION_START_PRICE = .3 ether; // start price uint256 public constant AUCTION_END_PRICE = 0.1 ether; // floor price uint256 public constant AUCTION_PRICE_CURVE_LENGTH = 80 minutes; // total time of the auction uint256 public constant AUCTION_DROP_INTERVAL = 20 minutes; uint256 public constant AUCTION_DROP_PER_STEP = (AUCTION_START_PRICE - AUCTION_END_PRICE) / (AUCTION_PRICE_CURVE_LENGTH / AUCTION_DROP_INTERVAL); // how much the auction price will drop the price per unit of time /** * @notice Returns the current auction price. Uses block.timestamp to properly calculate price */ function getAuctionPrice() public view returns (uint256) { uint256 _saleStartTime = uint256(saleConfig.auctionSaleStartTime); require(_saleStartTime != 0, "auction has not started"); if (block.timestamp < _saleStartTime) { return AUCTION_START_PRICE; // if the timestamp is less than the start of the sale, no discount } if (block.timestamp - _saleStartTime >= AUCTION_PRICE_CURVE_LENGTH) { return AUCTION_END_PRICE; // lower limit of the auction } else { uint256 steps = (block.timestamp - _saleStartTime) / AUCTION_DROP_INTERVAL; return AUCTION_START_PRICE - (steps * AUCTION_DROP_PER_STEP); // calculate the price based on how far away from the start we are } } /** * @notice function to set up the saleConfig variable; sets auctionSaleStartTime to 0 * @param mintlistPriceWei the mintlist price in wei * @param publicPriceWei the public sale price in wei * @param publicSaleStartTime the start time of the sale */ function endAuctionAndSetupNonAuctionSaleInfo( uint64 mintlistPriceWei, uint64 publicPriceWei, uint32 publicSaleStartTime ) external onlyOwner { saleConfig = SaleConfig( 0, publicSaleStartTime, mintlistPriceWei, publicPriceWei, saleConfig.publicSaleKey ); } /** * @notice Sets the auction's starting time * @param timestamp the starting time */ function setAuctionSaleStartTime(uint32 timestamp) external onlyOwner { // set the start time saleConfig.auctionSaleStartTime = timestamp; } /** * @notice sets the public sale key */ function setPublicSaleKey(uint32 key) external onlyOwner { // set the special key (not viewable to the public) saleConfig.publicSaleKey = key; } /** * @notice sets the whitelist w/ the respective amount of number of NFTs that each address can mint * Requires that the addresses[] and numSlots[] are the same length * @param addresses the whitelist addresses */ function seedWhitelist(address[] memory addresses) external onlyOwner { for (uint256 i = 0; i < addresses.length; i++) { allowlist[addresses[i]] = maxPerAddressDuringWhiteList; } } /** * @notice Removes a user from the whitelist * @param toRemove the public address of the user */ function removeFromWhitelist(address toRemove) external onlyOwner { require(allowlist[toRemove] > 0, "allowlist at 0 already"); allowlist[toRemove] = 0; } /** * @notice function to mint for the team */ function teamMint(uint256 quantity) external onlyOwner { require(avvenireCitizens.getTotalSupply() + quantity <= amountForTeam, "NFTs already minted"); avvenireCitizens.safeMint(msg.sender, quantity); } /** * @notice function to withdraw the money from the contract. Only callable by the owner */ function withdrawQuantity(uint256 toWithdraw) external onlyOwner nonReentrant { require (toWithdraw <= address(this).balance, "quantity to withdraw > balance"); (bool success, ) = msg.sender.call{value: toWithdraw}(""); require(success, "withdraw failed."); } /** * @notice function to withdraw the money from the contract. Only callable by the owner */ function withdrawAll() external onlyOwner nonReentrant { (bool success, ) = msg.sender.call{value: address(this).balance}(""); require(success, "withdraw failed."); } }
// SPDX-License-Identifier: MIT /** * @title Avvenire Citizens Interface */ pragma solidity ^0.8.4; import "AvvenireCitizenDataInterface.sol"; import "IERC721.sol"; interface AvvenireCitizensInterface is AvvenireCitizenDataInterface, IERC721 { // other functions function getTotalSupply() external returns (uint256); function requestChange(uint256) external payable; function setCitizenData(Citizen memory, bool) external; function bind( uint256, uint256, Sex, TraitType ) external; function safeMint(address, uint256) external; function numberMinted(address) external returns (uint256); function setOwnersExplicit(uint256) external; function burn(uint256) external; function numberBurned(address) external view returns (uint256); } interface AvvenireTraitsInterface is AvvenireCitizenDataInterface, IERC721 { function getTotalSupply() external returns (uint256); function setTraitData(Trait memory, bool) external; function safeMint(address, uint256) external; function numberMinted(address) external returns (uint256); function setOwnersExplicit(uint256) external; function burn(uint256) external; function numberBurned(address) external view returns (uint256); function makeTraitTransferable(uint256, bool) external; function makeTraitNonTransferrable(uint256) external; function isOwnerOf(uint256) external view returns (address); } interface AvvenireCitizensMappingsInterface is AvvenireCitizenDataInterface { function getCitizen(uint256) external view returns (Citizen memory); function getTrait(uint256) external view returns (Trait memory); function setCitizen(Citizen memory) external; function setTrait(Trait memory) external; function setAllowedPermission(address, bool) external; function setTraitFreedom(uint256, bool) external; function isCitizenInitialized(uint256) external view returns (bool); function setCitizenChangeRequest(uint256, bool) external; function getCitizenChangeRequest(uint256) external view returns(bool); function setTraitChangeRequest (uint256, bool) external; function getTraitChangeRequest(uint256) external view returns(bool); // mutability config stuct struct MutabilityConfig { bool mutabilityMode; // initially set the contract to be immutable, this will keep people from trying to use the function before it is released // payment information uint256 mutabilityCost; // the amount that it costs to make a change (initializes to 0) // trading information bool tradeBeforeChange; // initially set to false, don't want people to tokens that are pending changes } function getMutabilityMode() external view returns (bool); function getTradeBeforeChange() external view returns (bool); function getChangeCost() external view returns (uint256); }
// SPDX-License-Identifier: MIT /** * @title Avvenire Citizen Data Interface */ pragma solidity ^0.8.4; interface AvvenireCitizenDataInterface { // traits are bound to sex for fitting enum Sex {NULL, MALE, FEMALE} // make an enumerable for trait types (meant to be overridden with traits from individual project) enum TraitType { NULL, BACKGROUND, BODY, TATTOO, EYES, MOUTH, MASK, NECKLACE, CLOTHING, EARRINGS, HAIR, EFFECT } // struct for storing trait data for the citizen (used ONLY in the citizen struct) struct Trait { uint256 tokenId; // for mapping traits to their tokens string uri; bool free; // stores if the trait is free from the citizen (defaults to false) bool exists; // checks existence (for minting vs transferring) Sex sex; TraitType traitType; uint256 originCitizenId; // for mapping traits to their previous citizen owners } // struct for storing all the traits struct Traits { Trait background; Trait body; Trait tattoo; Trait eyes; Trait mouth; Trait mask; Trait necklace; Trait clothing; Trait earrings; Trait hair; Trait effect; } // struct for storing citizens struct Citizen { uint256 tokenId; string uri; bool exists; // checks existence (for minting vs transferring) Sex sex; Traits traits; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; }
// 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 v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Strings.sol) pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } }
// 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; } }
{ "evmVersion": "istanbul", "optimizer": { "enabled": true, "runs": 200 }, "libraries": { "AvvenireAuction.sol": {} }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"maxPerAddressDuringWhiteList_","type":"uint256"},{"internalType":"uint256","name":"collectionSize_","type":"uint256"},{"internalType":"uint256","name":"amountForAuctionAndTeam_","type":"uint256"},{"internalType":"uint256","name":"amountForTeam_","type":"uint256"},{"internalType":"address","name":"avvenireCitizensContractAddress_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"AUCTION_DROP_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AUCTION_DROP_PER_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AUCTION_END_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AUCTION_PRICE_CURVE_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AUCTION_START_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowlist","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountForAuctionAndTeam","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountForTeam","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"auctionMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"collectionSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"mintlistPriceWei","type":"uint64"},{"internalType":"uint64","name":"publicPriceWei","type":"uint64"},{"internalType":"uint32","name":"publicSaleStartTime","type":"uint32"}],"name":"endAuctionAndSetupNonAuctionSaleInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAuctionPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"publicPriceWei","type":"uint256"},{"internalType":"uint256","name":"publicSaleKey","type":"uint256"},{"internalType":"uint256","name":"publicSaleStartTime","type":"uint256"}],"name":"isPublicSaleOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerAddressDuringWhiteList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numberMintedDuringAuction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"callerPublicSaleKey","type":"uint256"}],"name":"publicSaleMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"toRefund","type":"address"}],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refundMe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toRemove","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleConfig","outputs":[{"internalType":"uint32","name":"auctionSaleStartTime","type":"uint32"},{"internalType":"uint32","name":"publicSaleStartTime","type":"uint32"},{"internalType":"uint64","name":"mintlistPrice","type":"uint64"},{"internalType":"uint64","name":"publicPrice","type":"uint64"},{"internalType":"uint32","name":"publicSaleKey","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"seedWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"timestamp","type":"uint32"}],"name":"setAuctionSaleStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"key","type":"uint32"}],"name":"setPublicSaleKey","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"teamMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalPaidDuringAuction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"whiteListMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"toWithdraw","type":"uint256"}],"name":"withdrawQuantity","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001fdb38038062001fdb833981016040819052620000349162000122565b6200003f33620000d2565b600180556002859055600483905560038290556005849055600680546001600160a01b0319166001600160a01b03831617905583831115620000c75760405162461bcd60e51b815260206004820152601d60248201527f6c617267657220636f6c6c656374696f6e2073697a65206e6565646564000000604482015260640160405180910390fd5b50505050506200017f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080600060a086880312156200013b57600080fd5b855160208701516040880151606089015160808a0151939850919650945092506001600160a01b03811681146200017157600080fd5b809150509295509295909350565b611e4c806200018f6000396000f3fe6080604052600436106101d85760003560e01c80636ebc56011161010257806390aa0b0f11610095578063cb91d8b311610064578063cb91d8b314610575578063f2fde38b14610588578063f8a987d8146105a8578063fa89401a146105be57600080fd5b806390aa0b0f14610487578063a69b1cd514610516578063a7cd52cb1461052c578063caf8a6d11461055957600080fd5b8063853828b6116100d1578063853828b61461040a5780638ab1d6811461041f5780638da5cb5b1461043f578063900280831461046757600080fd5b80636ebc560114610399578063715018a6146103b9578063784a7a9a146103ce5780637a1c4a56146103ee57600080fd5b80634bd25c6f1161017a57806359f369fe1161014957806359f369fe1461032c5780635a9e426b146103415780635cae01d3146103565780635f6575b21461036c57600080fd5b80634bd25c6f146102c15780634cfa11a3146102d65780634d3554c3146102ec5780635766245c146102ff57600080fd5b806330d5017f116101b657806330d5017f1461023257806332ad7f9414610252578063422030ba1461027b57806345c0f533146102ab57600080fd5b806302e001ef146101dd57806316e6e15a146101f25780632fbba11514610212575b600080fd5b6101f06101eb366004611a5c565b6105de565b005b3480156101fe57600080fd5b506101f061020d366004611aa6565b610891565b34801561021e57600080fd5b506101f061022d366004611a5c565b61097a565b34801561023e57600080fd5b506101f061024d366004611a5c565b610acb565b34801561025e57600080fd5b5061026860045481565b6040519081526020015b60405180910390f35b34801561028757600080fd5b5061029b610296366004611ae9565b610bff565b6040519015158152602001610272565b3480156102b757600080fd5b5061026860055481565b3480156102cd57600080fd5b50610268610c23565b3480156102e257600080fd5b5061026860025481565b6101f06102fa366004611a5c565b610d26565b34801561030b57600080fd5b5061026861031a366004611b2c565b60096020526000908152604090205481565b34801561033857600080fd5b50610268610f8a565b34801561034d57600080fd5b506101f0610fbf565b34801561036257600080fd5b506102686104b081565b34801561037857600080fd5b50610268610387366004611b2c565b600a6020526000908152604090205481565b3480156103a557600080fd5b506101f06103b4366004611b4e565b611197565b3480156103c557600080fd5b506101f06111dd565b3480156103da57600080fd5b506101f06103e9366004611b7f565b611213565b3480156103fa57600080fd5b50610268670429d069189e000081565b34801561041657600080fd5b506101f06112a5565b34801561042b57600080fd5b506101f061043a366004611b2c565b611388565b34801561044b57600080fd5b506000546040516001600160a01b039091168152602001610272565b34801561047357600080fd5b506101f0610482366004611b4e565b61142a565b34801561049357600080fd5b506007546104d99063ffffffff80821691640100000000810482169167ffffffffffffffff600160401b8304811692600160801b810490911691600160c01b9091041685565b6040805163ffffffff9687168152948616602086015267ffffffffffffffff9384169085015291166060830152909116608082015260a001610272565b34801561052257600080fd5b5061026860035481565b34801561053857600080fd5b50610268610547366004611b2c565b60086020526000908152604090205481565b34801561056557600080fd5b5061026867016345785d8a000081565b6101f0610583366004611c44565b61147a565b34801561059457600080fd5b506101f06105a3366004611b2c565b6116f6565b3480156105b457600080fd5b506102686112c081565b3480156105ca57600080fd5b506101f06105d9366004611b2c565b611791565b3233146106065760405162461bcd60e51b81526004016105fd90611c66565b60405180910390fd5b600754600160401b900467ffffffffffffffff16600081900361066b5760405162461bcd60e51b815260206004820181905260248201527f416c6c6f776c6973742073616c6520686173206e6f7420626567756e2079657460448201526064016105fd565b336000908152600860205260409020546106c75760405162461bcd60e51b815260206004820152601f60248201527f6e6f7420656c696769626c6520666f7220616c6c6f776c697374206d696e740060448201526064016105fd565b600554600654604080516362720d9160e11b8152905185926001600160a01b03169163c4e41b2291600480830192602092919082900301816000875af1158015610715573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107399190611c9d565b6107439190611ccc565b11156107865760405162461bcd60e51b815260206004820152601260248201527152656163686564206d617820737570706c7960701b60448201526064016105fd565b336000908152600860205260409020548211156107de5760405162461bcd60e51b815260206004820152601660248201527543616e206e6f74206d696e742074686973206d616e7960501b60448201526064016105fd565b336000908152600860205260409020546107f9908390611ce4565b3360008181526008602052604090819020929092556006549151632851206560e21b81526004810191909152602481018490526001600160a01b039091169063a144819490604401600060405180830381600087803b15801561085b57600080fd5b505af115801561086f573d6000803e3d6000fd5b50505050600081836108819190611cfb565b905061088c81611986565b505050565b6000546001600160a01b031633146108bb5760405162461bcd60e51b81526004016105fd90611d1a565b6040805160a0810182526000815263ffffffff9283166020820181905267ffffffffffffffff958616928201839052939094166060850181905260078054600160c01b80820490951660809097018790526fffffffffffffffffffffffffffffffff19166401000000009095026fffffffffffffffff0000000000000000191694909417600160401b909202919091176bffffffffffffffffffffffff60801b1916600160801b90910263ffffffff60c01b1916179202919091179055565b6000546001600160a01b031633146109a45760405162461bcd60e51b81526004016105fd90611d1a565b600354600654604080516362720d9160e11b8152905184926001600160a01b03169163c4e41b2291600480830192602092919082900301816000875af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190611c9d565b610a209190611ccc565b1115610a645760405162461bcd60e51b81526020600482015260136024820152721391951cc8185b1c9958591e481b5a5b9d1959606a1b60448201526064016105fd565b600654604051632851206560e21b8152336004820152602481018390526001600160a01b039091169063a144819490604401600060405180830381600087803b158015610ab057600080fd5b505af1158015610ac4573d6000803e3d6000fd5b5050505050565b6000546001600160a01b03163314610af55760405162461bcd60e51b81526004016105fd90611d1a565b600260015403610b175760405162461bcd60e51b81526004016105fd90611d4f565b600260015547811115610b6c5760405162461bcd60e51b815260206004820152601e60248201527f7175616e7469747920746f207769746864726177203e2062616c616e6365000060448201526064016105fd565b604051600090339083908381818185875af1925050503d8060008114610bae576040519150601f19603f3d011682016040523d82523d6000602084013e610bb3565b606091505b5050905080610bf75760405162461bcd60e51b815260206004820152601060248201526f3bb4ba34323930bb903330b4b632b21760811b60448201526064016105fd565b505060018055565b60008315801590610c0f57508215155b8015610c1b5750814210155b949350505050565b60075460009063ffffffff16808203610c7e5760405162461bcd60e51b815260206004820152601760248201527f61756374696f6e20686173206e6f74207374617274656400000000000000000060448201526064016105fd565b80421015610c9557670429d069189e000091505090565b6112c0610ca28242611ce4565b10610cb65767016345785d8a000091505090565b60006104b0610cc58342611ce4565b610ccf9190611d86565b9050610cdf6104b06112c0611d86565b610cf967016345785d8a0000670429d069189e0000611ce4565b610d039190611d86565b610d0d9082611cfb565b610d1f90670429d069189e0000611ce4565b9250505090565b323314610d455760405162461bcd60e51b81526004016105fd90611c66565b60075463ffffffff168015801590610d5d5750804210155b610da95760405162461bcd60e51b815260206004820152601860248201527f73616c6520686173206e6f74207374617274656420796574000000000000000060448201526064016105fd565b60045482600660009054906101000a90046001600160a01b03166001600160a01b031663c4e41b226040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e269190611c9d565b610e309190611ccc565b1115610eb55760405162461bcd60e51b815260206004820152604860248201527f6e6f7420656e6f7567682072656d61696e696e6720726573657276656420666f60448201527f722061756374696f6e20746f20737570706f72742064657369726564206d696e6064820152671d08185b5bdd5b9d60c21b608482015260a4016105fd565b600082610ec0610c23565b610eca9190611cfb565b600654604051632851206560e21b8152336004820152602481018690529192506001600160a01b03169063a144819490604401600060405180830381600087803b158015610f1757600080fd5b505af1158015610f2b573d6000803e3d6000fd5b5050336000908152600a6020526040902054610f4a9250859150611ccc565b336000908152600a6020908152604080832093909355600990522054610f71908290611ccc565b3360009081526009602052604090205561088c81611986565b610f986104b06112c0611d86565b610fb267016345785d8a0000670429d069189e0000611ce4565b610fbc9190611d86565b81565b323314610fde5760405162461bcd60e51b81526004016105fd90611c66565b6002600154036110005760405162461bcd60e51b81526004016105fd90611d4f565b6002600155600754600160801b900467ffffffffffffffff16806110615760405162461bcd60e51b81526020600482015260186024820152771c1d589b1a58c81c1c9a58d9481b9bdd081cd95d081e595d60421b60448201526064016105fd565b336000908152600a602052604081205461107b9083611cfb565b336000908152600960205260408120549192509061109a908390611da8565b9050600081136110f65760405162461bcd60e51b815260206004820152602160248201527f596f7520617265206e6f7420656c696769626c6520666f72206120726566756e6044820152601960fa1b60648201526084016105fd565b336000818152600960205260408082208290555190919083908381818185875af1925050503d8060008114611147576040519150601f19603f3d011682016040523d82523d6000602084013e61114c565b606091505b505090508061118d5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016105fd565b5050600180555050565b6000546001600160a01b031633146111c15760405162461bcd60e51b81526004016105fd90611d1a565b6007805463ffffffff191663ffffffff92909216919091179055565b6000546001600160a01b031633146112075760405162461bcd60e51b81526004016105fd90611d1a565b6112116000611a0c565b565b6000546001600160a01b0316331461123d5760405162461bcd60e51b81526004016105fd90611d1a565b60005b81518110156112a1576002546008600084848151811061126257611262611de7565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550808061129990611dfd565b915050611240565b5050565b6000546001600160a01b031633146112cf5760405162461bcd60e51b81526004016105fd90611d1a565b6002600154036112f15760405162461bcd60e51b81526004016105fd90611d4f565b6002600155604051600090339047908381818185875af1925050503d8060008114611338576040519150601f19603f3d011682016040523d82523d6000602084013e61133d565b606091505b50509050806113815760405162461bcd60e51b815260206004820152601060248201526f3bb4ba34323930bb903330b4b632b21760811b60448201526064016105fd565b5060018055565b6000546001600160a01b031633146113b25760405162461bcd60e51b81526004016105fd90611d1a565b6001600160a01b0381166000908152600860205260409020546114105760405162461bcd60e51b8152602060048201526016602482015275616c6c6f776c697374206174203020616c726561647960501b60448201526064016105fd565b6001600160a01b0316600090815260086020526040812055565b6000546001600160a01b031633146114545760405162461bcd60e51b81526004016105fd90611d1a565b6007805463ffffffff909216600160c01b0263ffffffff60c01b19909216919091179055565b3233146114995760405162461bcd60e51b81526004016105fd90611c66565b6040805160a08101825260075463ffffffff8082168352640100000000820481166020840181905267ffffffffffffffff600160401b8404811695850195909552600160801b830490941660608401819052600160c01b9092041660808301819052919284831461155a5760405162461bcd60e51b815260206004820152602560248201527f63616c6c6564207769746820696e636f7272656374207075626c69632073616c60448201526465206b657960d81b60648201526084016105fd565b611565828483610bff565b6115b15760405162461bcd60e51b815260206004820152601d60248201527f7075626c69632073616c6520686173206e6f7420626567756e2079657400000060448201526064016105fd565b600554600654604080516362720d9160e11b8152905189926001600160a01b03169163c4e41b2291600480830192602092919082900301816000875af11580156115ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116239190611c9d565b61162d9190611ccc565b11156116705760405162461bcd60e51b815260206004820152601260248201527172656163686564206d617820737570706c7960701b60448201526064016105fd565b600654604051632851206560e21b8152336004820152602481018890526001600160a01b039091169063a144819490604401600060405180830381600087803b1580156116bc57600080fd5b505af11580156116d0573d6000803e3d6000fd5b50505050600086836116e29190611cfb565b90506116ed81611986565b50505050505050565b6000546001600160a01b031633146117205760405162461bcd60e51b81526004016105fd90611d1a565b6001600160a01b0381166117855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105fd565b61178e81611a0c565b50565b6000546001600160a01b031633146117bb5760405162461bcd60e51b81526004016105fd90611d1a565b6002600154036117dd5760405162461bcd60e51b81526004016105fd90611d4f565b6002600155600754600160801b900467ffffffffffffffff168061183e5760405162461bcd60e51b81526020600482015260186024820152771c1d589b1a58c81c1c9a58d9481b9bdd081cd95d081e595d60421b60448201526064016105fd565b6001600160a01b0382166000908152600a60205260408120546118619083611cfb565b6001600160a01b03841660009081526009602052604081205491925090611889908390611da8565b9050600081136118db5760405162461bcd60e51b815260206004820152601960248201527f4e6f7420656c696769626c6520666f72206120726566756e640000000000000060448201526064016105fd565b6001600160a01b0384166000818152600960205260408082208290555190919083908381818185875af1925050503d8060008114611935576040519150601f19603f3d011682016040523d82523d6000602084013e61193a565b606091505b505090508061197b5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016105fd565b505060018055505050565b803410156119ce5760405162461bcd60e51b815260206004820152601560248201527409ccacac840e8de40e6cadcc840dadee4ca408aa89605b1b60448201526064016105fd565b8034111561178e57336108fc6119e48334611ce4565b6040518115909202916000818181858888f193505050501580156112a1573d6000803e3d6000fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215611a6e57600080fd5b5035919050565b803567ffffffffffffffff81168114611a8d57600080fd5b919050565b803563ffffffff81168114611a8d57600080fd5b600080600060608486031215611abb57600080fd5b611ac484611a75565b9250611ad260208501611a75565b9150611ae060408501611a92565b90509250925092565b600080600060608486031215611afe57600080fd5b505081359360208301359350604090920135919050565b80356001600160a01b0381168114611a8d57600080fd5b600060208284031215611b3e57600080fd5b611b4782611b15565b9392505050565b600060208284031215611b6057600080fd5b611b4782611a92565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611b9257600080fd5b823567ffffffffffffffff80821115611baa57600080fd5b818501915085601f830112611bbe57600080fd5b813581811115611bd057611bd0611b69565b8060051b604051601f19603f83011681018181108582111715611bf557611bf5611b69565b604052918252848201925083810185019188831115611c1357600080fd5b938501935b82851015611c3857611c2985611b15565b84529385019392850192611c18565b98975050505050505050565b60008060408385031215611c5757600080fd5b50508035926020909101359150565b6020808252601f908201527f5468652063616c6c657220697320616e6f7468657220636f6e74726163742e00604082015260600190565b600060208284031215611caf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611cdf57611cdf611cb6565b500190565b600082821015611cf657611cf6611cb6565b500390565b6000816000190483118215151615611d1557611d15611cb6565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082611da357634e487b7160e01b600052601260045260246000fd5b500490565b60008083128015600160ff1b850184121615611dc657611dc6611cb6565b6001600160ff1b0384018313811615611de157611de1611cb6565b50500390565b634e487b7160e01b600052603260045260246000fd5b600060018201611e0f57611e0f611cb6565b506001019056fea26469706673582212200f8c75162aae9fc1e44880701b79ba6cd10971e13773f053c4446d925617b2e364736f6c634300080d00330000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000138800000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000006400000000000000000000000042ef5eb48586757b2f69a37569b6f35120f2515e
Deployed Bytecode
0x6080604052600436106101d85760003560e01c80636ebc56011161010257806390aa0b0f11610095578063cb91d8b311610064578063cb91d8b314610575578063f2fde38b14610588578063f8a987d8146105a8578063fa89401a146105be57600080fd5b806390aa0b0f14610487578063a69b1cd514610516578063a7cd52cb1461052c578063caf8a6d11461055957600080fd5b8063853828b6116100d1578063853828b61461040a5780638ab1d6811461041f5780638da5cb5b1461043f578063900280831461046757600080fd5b80636ebc560114610399578063715018a6146103b9578063784a7a9a146103ce5780637a1c4a56146103ee57600080fd5b80634bd25c6f1161017a57806359f369fe1161014957806359f369fe1461032c5780635a9e426b146103415780635cae01d3146103565780635f6575b21461036c57600080fd5b80634bd25c6f146102c15780634cfa11a3146102d65780634d3554c3146102ec5780635766245c146102ff57600080fd5b806330d5017f116101b657806330d5017f1461023257806332ad7f9414610252578063422030ba1461027b57806345c0f533146102ab57600080fd5b806302e001ef146101dd57806316e6e15a146101f25780632fbba11514610212575b600080fd5b6101f06101eb366004611a5c565b6105de565b005b3480156101fe57600080fd5b506101f061020d366004611aa6565b610891565b34801561021e57600080fd5b506101f061022d366004611a5c565b61097a565b34801561023e57600080fd5b506101f061024d366004611a5c565b610acb565b34801561025e57600080fd5b5061026860045481565b6040519081526020015b60405180910390f35b34801561028757600080fd5b5061029b610296366004611ae9565b610bff565b6040519015158152602001610272565b3480156102b757600080fd5b5061026860055481565b3480156102cd57600080fd5b50610268610c23565b3480156102e257600080fd5b5061026860025481565b6101f06102fa366004611a5c565b610d26565b34801561030b57600080fd5b5061026861031a366004611b2c565b60096020526000908152604090205481565b34801561033857600080fd5b50610268610f8a565b34801561034d57600080fd5b506101f0610fbf565b34801561036257600080fd5b506102686104b081565b34801561037857600080fd5b50610268610387366004611b2c565b600a6020526000908152604090205481565b3480156103a557600080fd5b506101f06103b4366004611b4e565b611197565b3480156103c557600080fd5b506101f06111dd565b3480156103da57600080fd5b506101f06103e9366004611b7f565b611213565b3480156103fa57600080fd5b50610268670429d069189e000081565b34801561041657600080fd5b506101f06112a5565b34801561042b57600080fd5b506101f061043a366004611b2c565b611388565b34801561044b57600080fd5b506000546040516001600160a01b039091168152602001610272565b34801561047357600080fd5b506101f0610482366004611b4e565b61142a565b34801561049357600080fd5b506007546104d99063ffffffff80821691640100000000810482169167ffffffffffffffff600160401b8304811692600160801b810490911691600160c01b9091041685565b6040805163ffffffff9687168152948616602086015267ffffffffffffffff9384169085015291166060830152909116608082015260a001610272565b34801561052257600080fd5b5061026860035481565b34801561053857600080fd5b50610268610547366004611b2c565b60086020526000908152604090205481565b34801561056557600080fd5b5061026867016345785d8a000081565b6101f0610583366004611c44565b61147a565b34801561059457600080fd5b506101f06105a3366004611b2c565b6116f6565b3480156105b457600080fd5b506102686112c081565b3480156105ca57600080fd5b506101f06105d9366004611b2c565b611791565b3233146106065760405162461bcd60e51b81526004016105fd90611c66565b60405180910390fd5b600754600160401b900467ffffffffffffffff16600081900361066b5760405162461bcd60e51b815260206004820181905260248201527f416c6c6f776c6973742073616c6520686173206e6f7420626567756e2079657460448201526064016105fd565b336000908152600860205260409020546106c75760405162461bcd60e51b815260206004820152601f60248201527f6e6f7420656c696769626c6520666f7220616c6c6f776c697374206d696e740060448201526064016105fd565b600554600654604080516362720d9160e11b8152905185926001600160a01b03169163c4e41b2291600480830192602092919082900301816000875af1158015610715573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107399190611c9d565b6107439190611ccc565b11156107865760405162461bcd60e51b815260206004820152601260248201527152656163686564206d617820737570706c7960701b60448201526064016105fd565b336000908152600860205260409020548211156107de5760405162461bcd60e51b815260206004820152601660248201527543616e206e6f74206d696e742074686973206d616e7960501b60448201526064016105fd565b336000908152600860205260409020546107f9908390611ce4565b3360008181526008602052604090819020929092556006549151632851206560e21b81526004810191909152602481018490526001600160a01b039091169063a144819490604401600060405180830381600087803b15801561085b57600080fd5b505af115801561086f573d6000803e3d6000fd5b50505050600081836108819190611cfb565b905061088c81611986565b505050565b6000546001600160a01b031633146108bb5760405162461bcd60e51b81526004016105fd90611d1a565b6040805160a0810182526000815263ffffffff9283166020820181905267ffffffffffffffff958616928201839052939094166060850181905260078054600160c01b80820490951660809097018790526fffffffffffffffffffffffffffffffff19166401000000009095026fffffffffffffffff0000000000000000191694909417600160401b909202919091176bffffffffffffffffffffffff60801b1916600160801b90910263ffffffff60c01b1916179202919091179055565b6000546001600160a01b031633146109a45760405162461bcd60e51b81526004016105fd90611d1a565b600354600654604080516362720d9160e11b8152905184926001600160a01b03169163c4e41b2291600480830192602092919082900301816000875af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190611c9d565b610a209190611ccc565b1115610a645760405162461bcd60e51b81526020600482015260136024820152721391951cc8185b1c9958591e481b5a5b9d1959606a1b60448201526064016105fd565b600654604051632851206560e21b8152336004820152602481018390526001600160a01b039091169063a144819490604401600060405180830381600087803b158015610ab057600080fd5b505af1158015610ac4573d6000803e3d6000fd5b5050505050565b6000546001600160a01b03163314610af55760405162461bcd60e51b81526004016105fd90611d1a565b600260015403610b175760405162461bcd60e51b81526004016105fd90611d4f565b600260015547811115610b6c5760405162461bcd60e51b815260206004820152601e60248201527f7175616e7469747920746f207769746864726177203e2062616c616e6365000060448201526064016105fd565b604051600090339083908381818185875af1925050503d8060008114610bae576040519150601f19603f3d011682016040523d82523d6000602084013e610bb3565b606091505b5050905080610bf75760405162461bcd60e51b815260206004820152601060248201526f3bb4ba34323930bb903330b4b632b21760811b60448201526064016105fd565b505060018055565b60008315801590610c0f57508215155b8015610c1b5750814210155b949350505050565b60075460009063ffffffff16808203610c7e5760405162461bcd60e51b815260206004820152601760248201527f61756374696f6e20686173206e6f74207374617274656400000000000000000060448201526064016105fd565b80421015610c9557670429d069189e000091505090565b6112c0610ca28242611ce4565b10610cb65767016345785d8a000091505090565b60006104b0610cc58342611ce4565b610ccf9190611d86565b9050610cdf6104b06112c0611d86565b610cf967016345785d8a0000670429d069189e0000611ce4565b610d039190611d86565b610d0d9082611cfb565b610d1f90670429d069189e0000611ce4565b9250505090565b323314610d455760405162461bcd60e51b81526004016105fd90611c66565b60075463ffffffff168015801590610d5d5750804210155b610da95760405162461bcd60e51b815260206004820152601860248201527f73616c6520686173206e6f74207374617274656420796574000000000000000060448201526064016105fd565b60045482600660009054906101000a90046001600160a01b03166001600160a01b031663c4e41b226040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e269190611c9d565b610e309190611ccc565b1115610eb55760405162461bcd60e51b815260206004820152604860248201527f6e6f7420656e6f7567682072656d61696e696e6720726573657276656420666f60448201527f722061756374696f6e20746f20737570706f72742064657369726564206d696e6064820152671d08185b5bdd5b9d60c21b608482015260a4016105fd565b600082610ec0610c23565b610eca9190611cfb565b600654604051632851206560e21b8152336004820152602481018690529192506001600160a01b03169063a144819490604401600060405180830381600087803b158015610f1757600080fd5b505af1158015610f2b573d6000803e3d6000fd5b5050336000908152600a6020526040902054610f4a9250859150611ccc565b336000908152600a6020908152604080832093909355600990522054610f71908290611ccc565b3360009081526009602052604090205561088c81611986565b610f986104b06112c0611d86565b610fb267016345785d8a0000670429d069189e0000611ce4565b610fbc9190611d86565b81565b323314610fde5760405162461bcd60e51b81526004016105fd90611c66565b6002600154036110005760405162461bcd60e51b81526004016105fd90611d4f565b6002600155600754600160801b900467ffffffffffffffff16806110615760405162461bcd60e51b81526020600482015260186024820152771c1d589b1a58c81c1c9a58d9481b9bdd081cd95d081e595d60421b60448201526064016105fd565b336000908152600a602052604081205461107b9083611cfb565b336000908152600960205260408120549192509061109a908390611da8565b9050600081136110f65760405162461bcd60e51b815260206004820152602160248201527f596f7520617265206e6f7420656c696769626c6520666f72206120726566756e6044820152601960fa1b60648201526084016105fd565b336000818152600960205260408082208290555190919083908381818185875af1925050503d8060008114611147576040519150601f19603f3d011682016040523d82523d6000602084013e61114c565b606091505b505090508061118d5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016105fd565b5050600180555050565b6000546001600160a01b031633146111c15760405162461bcd60e51b81526004016105fd90611d1a565b6007805463ffffffff191663ffffffff92909216919091179055565b6000546001600160a01b031633146112075760405162461bcd60e51b81526004016105fd90611d1a565b6112116000611a0c565b565b6000546001600160a01b0316331461123d5760405162461bcd60e51b81526004016105fd90611d1a565b60005b81518110156112a1576002546008600084848151811061126257611262611de7565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550808061129990611dfd565b915050611240565b5050565b6000546001600160a01b031633146112cf5760405162461bcd60e51b81526004016105fd90611d1a565b6002600154036112f15760405162461bcd60e51b81526004016105fd90611d4f565b6002600155604051600090339047908381818185875af1925050503d8060008114611338576040519150601f19603f3d011682016040523d82523d6000602084013e61133d565b606091505b50509050806113815760405162461bcd60e51b815260206004820152601060248201526f3bb4ba34323930bb903330b4b632b21760811b60448201526064016105fd565b5060018055565b6000546001600160a01b031633146113b25760405162461bcd60e51b81526004016105fd90611d1a565b6001600160a01b0381166000908152600860205260409020546114105760405162461bcd60e51b8152602060048201526016602482015275616c6c6f776c697374206174203020616c726561647960501b60448201526064016105fd565b6001600160a01b0316600090815260086020526040812055565b6000546001600160a01b031633146114545760405162461bcd60e51b81526004016105fd90611d1a565b6007805463ffffffff909216600160c01b0263ffffffff60c01b19909216919091179055565b3233146114995760405162461bcd60e51b81526004016105fd90611c66565b6040805160a08101825260075463ffffffff8082168352640100000000820481166020840181905267ffffffffffffffff600160401b8404811695850195909552600160801b830490941660608401819052600160c01b9092041660808301819052919284831461155a5760405162461bcd60e51b815260206004820152602560248201527f63616c6c6564207769746820696e636f7272656374207075626c69632073616c60448201526465206b657960d81b60648201526084016105fd565b611565828483610bff565b6115b15760405162461bcd60e51b815260206004820152601d60248201527f7075626c69632073616c6520686173206e6f7420626567756e2079657400000060448201526064016105fd565b600554600654604080516362720d9160e11b8152905189926001600160a01b03169163c4e41b2291600480830192602092919082900301816000875af11580156115ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116239190611c9d565b61162d9190611ccc565b11156116705760405162461bcd60e51b815260206004820152601260248201527172656163686564206d617820737570706c7960701b60448201526064016105fd565b600654604051632851206560e21b8152336004820152602481018890526001600160a01b039091169063a144819490604401600060405180830381600087803b1580156116bc57600080fd5b505af11580156116d0573d6000803e3d6000fd5b50505050600086836116e29190611cfb565b90506116ed81611986565b50505050505050565b6000546001600160a01b031633146117205760405162461bcd60e51b81526004016105fd90611d1a565b6001600160a01b0381166117855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105fd565b61178e81611a0c565b50565b6000546001600160a01b031633146117bb5760405162461bcd60e51b81526004016105fd90611d1a565b6002600154036117dd5760405162461bcd60e51b81526004016105fd90611d4f565b6002600155600754600160801b900467ffffffffffffffff168061183e5760405162461bcd60e51b81526020600482015260186024820152771c1d589b1a58c81c1c9a58d9481b9bdd081cd95d081e595d60421b60448201526064016105fd565b6001600160a01b0382166000908152600a60205260408120546118619083611cfb565b6001600160a01b03841660009081526009602052604081205491925090611889908390611da8565b9050600081136118db5760405162461bcd60e51b815260206004820152601960248201527f4e6f7420656c696769626c6520666f72206120726566756e640000000000000060448201526064016105fd565b6001600160a01b0384166000818152600960205260408082208290555190919083908381818185875af1925050503d8060008114611935576040519150601f19603f3d011682016040523d82523d6000602084013e61193a565b606091505b505090508061197b5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016105fd565b505060018055505050565b803410156119ce5760405162461bcd60e51b815260206004820152601560248201527409ccacac840e8de40e6cadcc840dadee4ca408aa89605b1b60448201526064016105fd565b8034111561178e57336108fc6119e48334611ce4565b6040518115909202916000818181858888f193505050501580156112a1573d6000803e3d6000fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215611a6e57600080fd5b5035919050565b803567ffffffffffffffff81168114611a8d57600080fd5b919050565b803563ffffffff81168114611a8d57600080fd5b600080600060608486031215611abb57600080fd5b611ac484611a75565b9250611ad260208501611a75565b9150611ae060408501611a92565b90509250925092565b600080600060608486031215611afe57600080fd5b505081359360208301359350604090920135919050565b80356001600160a01b0381168114611a8d57600080fd5b600060208284031215611b3e57600080fd5b611b4782611b15565b9392505050565b600060208284031215611b6057600080fd5b611b4782611a92565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611b9257600080fd5b823567ffffffffffffffff80821115611baa57600080fd5b818501915085601f830112611bbe57600080fd5b813581811115611bd057611bd0611b69565b8060051b604051601f19603f83011681018181108582111715611bf557611bf5611b69565b604052918252848201925083810185019188831115611c1357600080fd5b938501935b82851015611c3857611c2985611b15565b84529385019392850192611c18565b98975050505050505050565b60008060408385031215611c5757600080fd5b50508035926020909101359150565b6020808252601f908201527f5468652063616c6c657220697320616e6f7468657220636f6e74726163742e00604082015260600190565b600060208284031215611caf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611cdf57611cdf611cb6565b500190565b600082821015611cf657611cf6611cb6565b500390565b6000816000190483118215151615611d1557611d15611cb6565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600082611da357634e487b7160e01b600052601260045260246000fd5b500490565b60008083128015600160ff1b850184121615611dc657611dc6611cb6565b6001600160ff1b0384018313811615611de157611de1611cb6565b50500390565b634e487b7160e01b600052603260045260246000fd5b600060018201611e0f57611e0f611cb6565b506001019056fea26469706673582212200f8c75162aae9fc1e44880701b79ba6cd10971e13773f053c4446d925617b2e364736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000138800000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000006400000000000000000000000042ef5eb48586757b2f69a37569b6f35120f2515e
-----Decoded View---------------
Arg [0] : maxPerAddressDuringWhiteList_ (uint256): 2
Arg [1] : collectionSize_ (uint256): 5000
Arg [2] : amountForAuctionAndTeam_ (uint256): 1000
Arg [3] : amountForTeam_ (uint256): 100
Arg [4] : avvenireCitizensContractAddress_ (address): 0x42Ef5eb48586757b2F69A37569B6F35120f2515e
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [1] : 0000000000000000000000000000000000000000000000000000000000001388
Arg [2] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [4] : 00000000000000000000000042ef5eb48586757b2f69a37569b6f35120f2515e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $3,484.84 | 0.0986 | $343.5 |
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.