setBaseURI(string) :
This function allows the owner of the contract to set the baseURI of the contract. The baseURI is a string that is used to store the base address of the contract. The function takes in a string memory _baseURI as an argument and sets the baseURI of the contract to the value of _baseURI. (autogenerated documentation)
tokenURI(uint256) :
This function takes in a uint256 id and returns a string memory. It does this by encoding the baseURI and the id as a string using the abi.encodePacked function. This allows the id to be used as a unique identifier for a token. (autogenerated documentation)
validCalculatedTokenPrice() :
This function calculates the current price of a token in an auction. It takes the starting price of the auction and reduces it by 0.1 ether for every 10 minutes that have passed since the start of the auction. If the calculated price is lower than the starting price, the function returns 0. (autogenerated documentation)
getCurrentTokenPrice() :
This function returns the current token price of a given token. It does this by first calculating the valid token price using the validCalculatedTokenPrice() function, and then returning the maximum of that value and 0.2 ether. This ensures that the token price never drops below 0.2 ether. (autogenerated documentation)
auction(bool) :
This function is used to auction off tokens. It checks if the auction has started, the total supply of tokens, the amount of tokens the sender is trying to purchase, and the price of the tokens. If all of these conditions are met, it will mint either one or two tokens to the sender, depending on the value of the boolean parameter mintingTwo. (autogenerated documentation)
_mintTwo(address) :
This function mints two tokens and assigns them to the address passed in as an argument. It first checks that the address is not 0 and that the total supply is not already at the maximum. It then increments the total supply by 2 and adds 2 to the balance of the address passed in. It then assigns the owner of the two tokens to the address passed in and emits two Transfer events. (autogenerated documentation)
setMintlistPrice(uint256) :
This function allows the owner of the contract to set the mintlistPrice, which is a uint256 value. This value is used to determine the price of a token when it is purchased from the contract. The function takes in a uint256 value as an argument and sets the mintlistPrice to that value. (autogenerated documentation)
mintlistUser(address) :
This function allows the owner of the contract to add a user to a list of users that are allowed to mint tokens. It does this by setting the boolean value of the user's address in the mintlisted mapping to true. (autogenerated documentation)
mintlistUsers() :
This function is used to mintlist users. It takes an array of addresses as an argument and sets the mintlisted boolean value for each address to true. This allows the users to be mintlisted and have access to the token. (autogenerated documentation)
mintlistMint() :
This function allows a mintlisted user to mint tokens. It checks that the total supply is not greater than the second evolution offset, that the user is mintlisted, and that the value of the transaction is greater than the mintlist price. If all of these conditions are met, the user is minted tokens and their mintlisted status is set to false. (autogenerated documentation)
withdraw() :
This function allows the owner of the contract to withdraw all of the funds stored in the contract. It does this by calling the Gnosis Safe contract, passing in the balance of the contract as the value, and then requiring that the call was successful. (autogenerated documentation)
rollOverPixelmons() :
This function allows the owner of the contract to mint new Pixelmon tokens. It takes an array of addresses as an argument and then loops through the array, minting a new Pixelmon token for each address. The total supply of Pixelmon tokens is tracked and if the total supply exceeds the second evolution offset, the function will revert. (autogenerated documentation)
setSerumContract(address) :
This function allows the owner of the contract to set the address of the Serum contract. It takes an address as an argument and sets the address of the Serum contract to the address provided. This allows the contract to interact with the Serum contract. (autogenerated documentation)
mintEvolvedPixelmon(address) :
This function allows the contract to mint evolved Pixelmon tokens to a specified address. It takes two parameters, an address to receive the tokens and an evolution stage. Depending on the evolution stage, the function will mint a different type of Pixelmon token. If the evolution stage is 2, the function will mint a token from the secondEvolutionOffset and increment the secondEvolutionSupply. If the evolution stage is 3, the function will mint a token from the thirdEvolutionOffset and increment the thirdEvolutionSupply. If the evolution stage is 4, the function will mint a token from the fourthEvolutionOffset and increment the fourthEvolutionSupply. If the evolution stage is not 2, 3, or 4, the (autogenerated documentation)
max(uint256,uint256) :
This function is an internal pure function that takes two uint256 values (a and b) and returns the larger of the two values. It does this by comparing the two values and returning the larger one. (autogenerated documentation)