alreadyMinted(address,bytes32) :
In production we will never issue more than a single nonce per address, but this allows for testing with a single address.
approve(address,uint256) :
See {IERC721-approve}.
balanceOf(address) :
See {IERC721-balanceOf}.
cost(uint256,uint256) :
The second parameter, metadata propagated from the call to _purchase(), is ignored.
expelFromNest(uint256) :
As most sales listings use off-chain signatures it's impossible to detect someone who has nested and then deliberately undercuts the floor price in the knowledge that the sale can't proceed. This function allows for monitoring of such practices and expulsion if abuse is detected, allowing the undercutting bird to be sold on the open market. Since OpenSea uses isApprovedForAll() in its pre-listing checks, we can't block by that means because nesting would then be all-or-nothing for all of a particular owner's Moonbirds.
getApproved(uint256) :
See {IERC721-getApproved}.
getRoleAdmin(bytes32) :
Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
getRoleMember(bytes32,uint256) :
Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.
getRoleMemberCount(bytes32) :
Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.
grantRole(bytes32,address) :
Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.
hasRole(bytes32,address) :
Returns `true` if `account` has been granted `role`.
isApprovedForAll(address,address) :
Returns true if either standard `isApprovedForAll()` or if the `operator` is the OpenSea proxy for the `owner` provided the pre-approval is active.
mintPROOF(uint256[]) :
Repeat a PROOF token ID twice to redeem both of its claims; recurring values SHOULD be adjacent for improved gas (eg [1,1,2,2] not [1,2,1,2]).
name() :
See {IERC721Metadata-name}.
nestingPeriod(uint256) :
Nesting is tied to a specific Moonbird, not to the owner, so it doesn't reset upon sale.
owner() :
Returns the address of the current owner.
ownerOf(uint256) :
See {IERC721-ownerOf}.
paused() :
Returns true if the contract is paused, and false otherwise.
renounceOwnership() :
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.
renounceRole(bytes32,address) :
Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.
revokeRole(bytes32,address) :
Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.
royaltyInfo(uint256,uint256) :
Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be payed in that same unit of exchange.
safeTransferFrom(address,address,uint256) :
See {IERC721-safeTransferFrom}.
safeTransferFrom(address,address,uint256,bytes) :
See {IERC721-safeTransferFrom}.
setApprovalForAll(address,bool) :
Uses the standard `setApprovalForAll` or toggles the pre-approval state if `operator` is the OpenSea proxy for the sender.
symbol() :
See {IERC721Metadata-symbol}.
toggleNesting(uint256[]) :
Changes the Moonbirds' nesting sheep (see @notice).
totalSupply() :
Burned tokens are calculated here, use _totalMinted() if you want to count just minted tokens.
transferFrom(address,address,uint256) :
See {IERC721-transferFrom}.
transferOwnership(address) :
Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.
_handlePurchase(address,uint256,bool) :
This function mints a new NFT to the specified address and ensures that the total supply does not exceed 10,000.
(autogenerated documentation)
mintPublic(address,bytes32) :
This function mints a token for the specified address if the signature is valid, using a nonce to prevent replay attacks.
(autogenerated documentation)
alreadyMinted(address,bytes32) :
This function checks if a message with a given recipient and nonce has already been used for minting. It uses a signature payload to generate a unique message and checks if it has been used before.
(autogenerated documentation)
signaturePayload(address,bytes32) :
This function encodes the recipient address and nonce into a byte array for use in a signature.
(autogenerated documentation)
setPROOFMintingOpen(bool) :
This function sets the proofMintingOpen variable to either true or false, allowing or disallowing minting of a specific token. Only the contract owner can call this function.
(autogenerated documentation)
mintPROOF(uint256[]) :
This function mints PROOF tokens for the caller by redeeming specified token IDs and handles the purchase.
(autogenerated documentation)
proofClaimsRemaining(uint256) :
This function returns the number of unclaimed PROOF tokens for a given tokenId (out of 2 total), by subtracting the number of already claimed tokens.
(autogenerated documentation)
mintUnclaimed(address,uint256) :
This function mints unclaimed tokens to a specified address, reducing the proof-of-stake pool. Only the owner can call this function.
(autogenerated documentation)
nestingPeriod(uint256) :
This function checks if a token is currently nesting, and returns the current and total nesting periods.
(autogenerated documentation)
safeTransferWhileNesting(address,address,uint256) :
This function transfers a token from 'from' to 'to' address safely, while allowing nesting of transfers.
(autogenerated documentation)
_beforeTokenTransfers(uint256,uint256) :
This function checks if a token transfer is allowed based on nestingStarted and nestingTransfer variables.
(autogenerated documentation)
setNestingOpen(bool) :
This function sets the state of a boolean variable called "nestingOpen" to either true or false, depending on the input parameter "open". Only the contract owner can call this function.
(autogenerated documentation)
toggleNesting(uint256) :
This function toggles nesting for a token, tracking time spent nested. If nesting is open, it starts nesting and vice versa.
(autogenerated documentation)
toggleNesting(uint256[]) :
This function toggles the nesting status of multiple tokens by calling the toggleNesting function for each token ID in the input array.
(autogenerated documentation)
expelFromNest(uint256) :
This function expels a Moonbird from its nest, updates nesting time, and emits events. Only users with EXPULSION_ROLE can call it.
(autogenerated documentation)
_baseURI() :
This function returns the base URI for a token by calling the overridden _baseURI function from the BaseTokenURI contract.
(autogenerated documentation)
setRenderingContract() :
This function sets the rendering contract for generating token URIs. It can only be called by the contract owner.
(autogenerated documentation)
tokenURI(uint256) :
This function returns the token URI for a given token ID. If a rendering contract is set, it uses that contract's tokenURI function.
(autogenerated documentation)
setRoyaltyInfo(address,uint96) :
This function sets the default royalty information for a receiver with a given fee basis points, only accessible by the contract owner.
(autogenerated documentation)
supportsInterface(bytes4) :
This function checks if a given interface is supported by the contract by calling the parent contracts' supportsInterface functions.
(autogenerated documentation)