Skip to main content

MinterBreeding

MinterBreeding​

Decentralized NFT Minter contract

defaultGenesNum​

uint8 defaultGenesNum

defaultRequiredParents​

uint8 defaultRequiredParents

defaultBreedingCooldownSeconds​

uint256 defaultBreedingCooldownSeconds

version​

string version

ERC165TAG​

bytes4 ERC165TAG

BreedingRules​

struct BreedingRules {
uint8 requiredParents;
uint16 generationCooldownMultiplier;
uint8[] genes;
uint256 breedCooldownSeconds;
uint256[] mutationRates;
}

lastBredTime​

mapping(uint256 => uint256) lastBredTime

_breedingRules​

struct MinterBreeding.BreedingRules _breedingRules

SetBreedingRules​

event SetBreedingRules(uint8 requiredParents, uint256 breedCooldownSeconds, uint8[] genes, uint256[] mutationRates)

constructor​

constructor() public

initialize​

function initialize(address _admin, address _mintFeeToken, address _mintFeeAddress, uint256 _mintFeeAmount, address _nftContractAddr, struct MinterBreeding.BreedingRules breedingRules_, address _forwarder) external

proxyIntiialize​

function proxyIntiialize(address _admin, address _mintFeeToken, address _mintFeeAddress, uint256 _mintFeeAmount, address _nftContractAddr, struct MinterBreeding.BreedingRules breedingRules_, address _forwarder) external

__MinterBreeding_init​

function __MinterBreeding_init(address _admin, address _mintFeeToken, address _mintFeeAddress, uint256 _mintFeeAmount, address _nftContractAddr, struct MinterBreeding.BreedingRules breedingRules_, address _forwarder) internal

__MinterBreeding_init_unchained​

function __MinterBreeding_init_unchained(struct MinterBreeding.BreedingRules breedingRules_) internal

breed​

function breed(uint256[] parents) public returns (uint256 dna)

Create a new type of species and define attributes.

safeBreed​

function safeBreed(uint256[] parents) public returns (uint256 dna)

Create a new type of species and define attributes.

setBreedingRules​

function setBreedingRules(uint8 requiredParents, uint16 generationCooldownMultiplier, uint256 breedCooldownSeconds, uint8[] genes, uint256[] mutationRates) public

Create a new type of species and define attributes.

getBreedingRules​

function getBreedingRules() public view returns (uint8 requiredParents, uint256 breedCooldownSeconds, uint8[] genes, uint256[] mutationRates)

Returns the current breeding rules used for a species

_breedSpecies​

function _breedSpecies(uint256[] parents, address caller) internal returns (uint256 dna)

Internal function to do the heavy lifting for breeding

NameTypeDescription
parentsuint256[]parents to use for breeding
calleraddressowner of parent NFTs (this will be verified)

_getBreedingRules​

function _getBreedingRules() internal view returns (uint8 requiredParents, uint256 breedCooldownSeconds, uint8[] genes, uint256[] mutationRates)

Internal function to do the heavy lifting for breeding

NameTypeDescription
requiredParentsuint8number of parents required (defaults to 2)
breedCooldownSecondsuint256number of seconds to cooldown (defaults to 7 days)
genesuint8[]256-bit gene split locations (defaults to 8 32-bit genes)
mutationRatesuint256[]mutation rate locations (defaults to none)

supportsInterface​

function supportsInterface(bytes4 interfaceId) public view virtual returns (bool)

ERC165 Support

NameTypeDescription
interfaceIdbytes4hash of the interface testing for
NameTypeDescription
[0]boolbool whether interface is supported