[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AreYouReallyTryingToSetTheGenerationForTokensThatDontExist","type":"error"},{"inputs":[],"name":"BalanceOfZeroAddressNotAllowedItsComplicated","type":"error"},{"inputs":[],"name":"CantGetApprovalsForTokensThatDontExist","type":"error"},{"inputs":[],"name":"CantGetTheUriForTokensThatArentEvenReal","type":"error"},{"inputs":[],"name":"DangCouldntSendTheFundsForYou","type":"error"},{"inputs":[],"name":"DontMessWithOtherPeoplesTokensOnlyOwnersCanUnlockNextGeneration","type":"error"},{"inputs":[],"name":"GenerationAddressNotValidWhoops","type":"error"},{"inputs":[],"name":"GottaUnlockThisGenerationBeforeYouSetItFriend","type":"error"},{"inputs":[],"name":"HoldYourHorsesNextGenerationIsNotEnabled","type":"error"},{"inputs":[],"name":"HowCanYouEvenMintLessThanOne","type":"error"},{"inputs":[],"name":"ItsTheSameGenerationYoureNotChangingAnything","type":"error"},{"inputs":[],"name":"LoveTheExcitementButMintIsNotActive","type":"error"},{"inputs":[],"name":"LoveTheSupportButCantMintThatMany","type":"error"},{"inputs":[],"name":"MintingToZeroAddressWouldCauseHavoc","type":"error"},{"inputs":[],"name":"NotTheRightAmountToUnlockTryAgain","type":"error"},{"inputs":[],"name":"PleaseDontTransferToTheZeroAddressThanks","type":"error"},{"inputs":[],"name":"ReallyWantToMintForYouButNotTheRightFunds","type":"error"},{"inputs":[],"name":"SeriouslyYouDontEvenHaveThatMuchToSend","type":"error"},{"inputs":[],"name":"SorryCouldntWithdrawYourFundsHomie","type":"error"},{"inputs":[],"name":"SorryFriendContractsCantMint","type":"error"},{"inputs":[],"name":"SorryYouCantAbandonOwnershipToTheZeroAddress","type":"error"},{"inputs":[],"name":"StopTryingToApproveIfYoureNotTheOwnerOrApproved","type":"error"},{"inputs":[],"name":"StopTryingToChangeOtherPeoplesTokenGenerationYoureNotTheOwner","type":"error"},{"inputs":[],"name":"TheFromAddressNeedsToBeTheOwnerPlease","type":"error"},{"inputs":[],"name":"TheresNoGenerationsLessThanZeroDude","type":"error"},{"inputs":[],"name":"TokensThatDontExistDontHaveDataOrDoThey","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"UhOhTheGenerationYouRequestedIsNotEnabled","type":"error"},{"inputs":[],"name":"WeKnowYoureTheOwnerAndAllButYouCantMintThatMany","type":"error"},{"inputs":[],"name":"WeReallyNeedTheContractOwnerToDoThis","type":"error"},{"inputs":[],"name":"WeWouldBreakIfWeMintedThisMany","type":"error"},{"inputs":[],"name":"WhyAreYouTryingToApproveYourself","type":"error"},{"inputs":[],"name":"WhyAreYouTryingToTransferTheTokenIfYoureNotTheOwnerOrApproved","type":"error"},{"inputs":[],"name":"YoureTheOwnerYouDontNeedApprovalDuh","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"AddressToDataMap","outputs":[{"internalType":"uint8","name":"mintedCount","type":"uint8"},{"internalType":"uint16","name":"balance","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GoodblockPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"IsMintActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxFreePerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MaxMintPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ProjectDescription","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ProjectName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ProjectSymbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_genIndex","type":"uint256"}],"name":"getGenerationData","outputs":[{"components":[{"internalType":"bool","name":"isEnabled","type":"bool"},{"internalType":"address","name":"genAddress","type":"address"},{"internalType":"uint256","name":"unlockCostInWei","type":"uint256"}],"internalType":"struct goodblocks.GenerationData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getTokenData","outputs":[{"components":[{"internalType":"uint8","name":"activeGen","type":"uint8"},{"internalType":"uint8","name":"highestGenLevel","type":"uint8"},{"internalType":"uint64","name":"timesTransferred","type":"uint64"},{"internalType":"uint64","name":"ownedSince","type":"uint64"},{"internalType":"address","name":"tokenOwner","type":"address"}],"internalType":"struct goodblocks.TokenData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_quantity","type":"uint8"}],"name":"mintGoodBlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"bool","name":"_ignoreAddress","type":"bool"},{"internalType":"address","name":"_to","type":"address"}],"name":"ownerMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sendFunds","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approvedStatus","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_genIndex","type":"uint256"}],"name":"setTokenGeneration","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"_rh","type":"string"}],"name":"setrh","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_genIndex","type":"uint256"}],"name":"toggleGenerationStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleMintStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"unlockNextGeneration","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_genIndex","type":"uint256"},{"internalType":"bool","name":"_isEnabled","type":"bool"},{"internalType":"address","name":"_genAddress","type":"address"},{"internalType":"uint256","name":"_costInWei","type":"uint256"}],"name":"updateGeneration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxFreePerAddress","type":"uint256"}],"name":"updateMaxFreePerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMaxPerAddress","type":"uint256"}],"name":"updateMaxMintPerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPriceInWei","type":"uint256"}],"name":"updateMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"uint256","name":"_timeMax","type":"uint256"},{"internalType":"string","name":"_traitName","type":"string"}],"name":"updateOwnedSinceBucket","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newName","type":"string"},{"internalType":"string","name":"_newSymbol","type":"string"},{"internalType":"string","name":"_newDesc","type":"string"}],"name":"updateProjectInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"uint256","name":"_transferMax","type":"uint256"},{"internalType":"string","name":"_traitName","type":"string"}],"name":"updateTransferBucket","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawFunds","outputs":[],"stateMutability":"payable","type":"function"}]