ApplicationERC721
Inherits: ERC721, AccessControl, IProtocolToken, IApplicationEvents, IZeroAddressError, ReentrancyGuard, ERC721Burnable, ERC721Enumerable
Author: @ShaneDuncan602, @oscarsernarosero, @TJ-Everett, @Palmerg4
This is an example implementation that App Devs should use.
During deployment _tokenName _tokenSymbol _tokenAdmin are set in constructor
State Variables
_tokenIdCounter
TOKEN_ADMIN_ROLE
handlerAddress
baseUri
Base Contract URI
Functions
constructor
Constructor sets params
Parameters
Name | Type | Description |
---|---|---|
_name | string | Name of the token |
_symbol | string | Symbol of the token |
_tokenAdmin | address | Token Admin address |
_baseUri | string |
_baseURI
Function to return baseUri for contract
Returns
Name | Type | Description |
---|---|---|
<none> | string | baseUri URI link to NFT metadata |
setBaseURI
this is called in the constructor and can be called to update URI metadata pointer
Function to set URI for contract.
Parameters
Name | Type | Description |
---|---|---|
_baseUri | string | URI to the metadata file(s) for the contract |
safeMint
Add appAdministratorOnly modifier to restrict minting privilages Function is payable for child contracts to override with priced mint function.
Function mints new a new token to caller with tokenId incremented by 1 from previous minted token.
Parameters
Name | Type | Description |
---|---|---|
to | address | Address of recipient |
_beforeTokenTransfer
Function called before any token transfers to confirm transfer is within rules of the protocol
Parameters
Name | Type | Description |
---|---|---|
from | address | sender address |
to | address | recipient address |
tokenId | uint256 | Id of token to be transferred |
batchSize | uint256 | the amount of NFTs to mint in batch. If a value greater than 1 is given, tokenId will represent the first id to start the batch. |
supportsInterface
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.
getHandlerAddress
This function returns the handler address
Returns
Name | Type | Description |
---|---|---|
<none> | address | handlerAddress |
connectHandlerToToken
This function does not check for zero address. Zero address is a valid address for this function’s purpose.
Function to connect Token to previously deployed Handler contract
Parameters
Name | Type | Description |
---|---|---|
_deployedHandlerAddress | address | address of the currently deployed Handler Address |
withdraw
Function to withdraw Ether sent to contract
AppAdministratorOnly modifier uses appManagerAddress. Only Addresses asigned as AppAdministrator can call function.