3.8k txs
3.8k calls
constructor
constructor()
functions
getFileExtension
purefunction getFileExtension(uint8 imageType) pure returns (uint8)
getFileExtensionString
purefunction getFileExtensionString(uint8 imageType) pure returns (string)
getImageAsDataURL
viewfunction getImageAsDataURL(uint256 tokenId, uint8 imageType) view returns (string)
getImageBase64
viewfunction getImageBase64(uint256 tokenId, uint8 imageType) view returns (bytes)
getMimeType
purefunction getMimeType(uint8 imageType) pure returns (string)
getSeed
viewfunction getSeed(uint256 tokenId) view returns (string)
getTokenIdsWithTrait
viewfunction getTokenIdsWithTrait(uint8 trait, uint256 value) view returns (uint256[])
getTokenTrait
viewfunction getTokenTrait(uint256 tokenId, uint8 trait) view returns (uint256)
getTokenTraits
viewfunction getTokenTraits(uint256 tokenId) view returns (uint256[])
getTokenTraitsMany
viewfunction getTokenTraitsMany(uint256[] tokenIds) view returns (uint256[][])
getTokenTraitsString
viewfunction getTokenTraitsString(uint256 tokenId) view returns (string[])
getTraitName
viewfunction getTraitName(uint8 trait, uint256 index) view returns (string)
getTraitNames
viewfunction getTraitNames(uint8[] traits, uint256[] indexes) view returns (string[])
MAX_TOKENS
viewfunction MAX_TOKENS() view returns (uint256)
NUM_TRAITS
viewfunction NUM_TRAITS() view returns (uint256)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
addImage
nonpayablefunction addImage(uint256 tokenId, uint8 imageType, bytes imageData)
addImageMany
nonpayablefunction addImageMany(uint256[] tokenIds, uint8[] imageTypes, bytes[] imageDatas)
addTokenIdsToTrait
nonpayablefunction addTokenIdsToTrait(uint8 trait, uint256 value, uint256[] tokenIds)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
renounceOwnership
payablefunction renounceOwnership() payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
setSeed
nonpayablefunction setSeed(uint256 tokenId, string seedValue)
setSeedMany
nonpayablefunction setSeedMany(uint256[] tokenIds, string[] seedValues)
setTokenTraitsMany
nonpayablefunction setTokenTraitsMany(uint256[] tokenIds, uint8[] traits, uint256[] values)
setTraitNamesMany
nonpayablefunction setTraitNamesMany(uint8[] traits, uint256[] indexes, string[] names)
transferOwnership
payablefunction transferOwnership(address newOwner) payable
events
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
errors
AlreadyInitialized
error AlreadyInitialized()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoHandoverRequest
error NoHandoverRequest()
Unauthorized
error Unauthorized()
creation bytecode
0x608060405234801561001057600080fd5b50600160005561001f33610024565b610060565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b6126128061006f6000396000f3fe6080604052600436106101c25760003560e01c80638da5cb5b116100f7578063e319c2c611610095578063f2fde38b11610064578063f2fde38b146104ed578063f47c84c514610500578063fcc52b0114610516578063fee81cf41461053657600080fd5b8063e319c2c61461046d578063e9d1f0101461048d578063ee78898a146104ba578063f04e283e146104da57600080fd5b806394e56847116100d157806394e56847146103e0578063d34651631461040d578063df07c2771461042d578063e0d4ea371461044d57600080fd5b80638da5cb5b146103745780638ff53e32146103a057806390a808ca146103c057600080fd5b806353f79255116101645780636b05f9ef1161013e5780636b05f9ef1461030c578063715018a61461032c57806378a61ee314610334578063794a4fd71461035457600080fd5b806353f79255146102b757806354d1f13d146102e457806355b380b2146102ec57600080fd5b80633593ba33116101a05780633593ba33146102345780633cc4d39214610254578063454836ad146102745780634d31d2241461029757600080fd5b8063228d2709146101c757806325692962146101fd5780632ce76cfe14610207575b600080fd5b3480156101d357600080fd5b506101e76101e2366004611ced565b610569565b6040516101f49190611d2e565b60405180910390f35b6102056106f6565b005b34801561021357600080fd5b50610227610222366004611dc7565b610745565b6040516101f49190611e32565b34801561024057600080fd5b5061020561024f366004611e45565b61084d565b34801561026057600080fd5b5061020561026f366004611ebf565b610953565b34801561028057600080fd5b50610289600781565b6040519081526020016101f4565b3480156102a357600080fd5b506102056102b2366004611f0c565b610a44565b3480156102c357600080fd5b506102d76102d2366004611e45565b610b27565b6040516101f49190611f92565b610205610d1b565b3480156102f857600080fd5b50610289610307366004611ff4565b610d57565b34801561031857600080fd5b50610205610327366004612020565b610da0565b610205610ef6565b34801561034057600080fd5b5061022761034f3660046120b9565b610f0a565b34801561036057600080fd5b5061020561036f3660046120f2565b611026565b34801561038057600080fd5b50638b78c6d819546040516001600160a01b0390911681526020016101f4565b3480156103ac57600080fd5b506102d76103bb3660046121ac565b611079565b3480156103cc57600080fd5b506102056103db366004612020565b611226565b3480156103ec57600080fd5b506104006103fb3660046121ac565b61140f565b6040516101f491906121c5565b34801561041957600080fd5b50610227610428366004611dc7565b6114c4565b34801561043957600080fd5b506102276104483660046120b9565b6114d5565b34801561045957600080fd5b506102276104683660046121ac565b611669565b34801561047957600080fd5b50610400610488366004612209565b61170b565b34801561049957600080fd5b506104ad6104a8366004611dc7565b6117aa565b6040516101f49190612249565b3480156104c657600080fd5b506102056104d5366004612020565b611889565b6102056104e8366004612271565b61198e565b6102056104fb366004612271565b6119ce565b34801561050c57600080fd5b5061028961138881565b34801561052257600080fd5b50610227610531366004612209565b6119f5565b34801561054257600080fd5b50610289610551366004612271565b63389a75e1600c908152600091909152602090205490565b60608160076000826001600160401b03811115610588576105886120dc565b6040519080825280602002602001820160405280156105bb57816020015b60608152602001906001900390816105a65790505b50905060005b838110156106ec576000836001600160401b038111156105e3576105e36120dc565b60405190808252806020026020018201604052801561060c578160200160208202803683370190505b50905060005b848110156106b957600360008a8a868181106106305761063061229a565b905060200201358152602001908152602001600020600082600681111561065957610659612233565b600681111561066a5761066a612233565b600681111561067b5761067b612233565b81526020019081526020016000205482828151811061069c5761069c61229a565b6020908102919091010152806106b1816122b0565b915050610612565b50808383815181106106cd576106cd61229a565b60200260200101819052505080806106e4906122b0565b9150506105c1565b5095945050505050565b60006202a3006001600160401b03164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b60606000610752836117aa565b9050600081600281111561076857610768612233565b0361078e57505060408051808201909152600381526233b4b360e91b6020820152919050565b60018160028111156107a2576107a2612233565b036107c8575050604080518082019091526003815262706e6760e81b6020820152919050565b60028160028111156107dc576107dc612233565b0361080257505060408051808201909152600381526273766760e81b6020820152919050565b60405162461bcd60e51b81526020600482015260156024820152742ab735b737bbb7102334b632a2bc3a32b739b4b7b760591b60448201526064015b60405180910390fd5b50919050565b610855611ac4565b8281146108745760405162461bcd60e51b815260040161083e906122d7565b60005b8381101561094c5760008585838181106108935761089361229a565b905060200201351180156108c157506113888585838181106108b7576108b761229a565b9050602002013511155b6108dd5760405162461bcd60e51b815260040161083e90612306565b8282828181106108ef576108ef61229a565b9050602002810190610901919061232f565b600260008888868181106109175761091761229a565b90506020020135815260200190815260200160002091826109399291906123ef565b5080610944816122b0565b915050610877565b5050505050565b61095b611ac4565b6005600085600681111561097157610971612233565b600681111561098257610982612233565b8152602001908152602001600020600084815260200190815260200160002060006109ad9190611c70565b60005b8181101561094c57600560008660068111156109ce576109ce612233565b60068111156109df576109df612233565b81526020019081526020016000206000858152602001908152602001600020838383818110610a1057610a1061229a565b8354600181018555600094855260209485902091909402929092013591909201555080610a3c816122b0565b9150506109b0565b610a4c611adf565b610a54611ac4565b600084118015610a6657506113888411155b610a825760405162461bcd60e51b815260040161083e90612306565b80610ac55760405162461bcd60e51b8152602060048201526013602482015272125b5859d94819185d18481c995c5d5a5c9959606a1b604482015260640161083e565b60008481526001602052604081208391839190866004811115610aea57610aea612233565b6004811115610afb57610afb612233565b81526020019081526020016000209182610b169291906123ef565b50610b216001600055565b50505050565b6060838214610b835760405162461bcd60e51b815260206004820152602260248201527f74726169747320616e6420696e6465786573206c656e677468206d69736d61746044820152610c6d60f31b606482015260840161083e565b6000826001600160401b03811115610b9d57610b9d6120dc565b604051908082528060200260200182016040528015610bd057816020015b6060815260200190600190039081610bbb5790505b50905060005b838110156106ec5760046000888884818110610bf457610bf461229a565b9050602002016020810190610c0991906124ae565b6006811115610c1a57610c1a612233565b6006811115610c2b57610c2b612233565b81526020019081526020016000206000868684818110610c4d57610c4d61229a565b9050602002013581526020019081526020016000208054610c6d90612375565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9990612375565b8015610ce65780601f10610cbb57610100808354040283529160200191610ce6565b820191906000526020600020905b815481529060010190602001808311610cc957829003601f168201915b5050505050828281518110610cfd57610cfd61229a565b60200260200101819052508080610d13906122b0565b915050610bd6565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b600082815260036020526040812081836006811115610d7857610d78612233565b6006811115610d8957610d89612233565b815260200190815260200160002054905092915050565b610da8611ac4565b8483148015610db657508281145b610dd25760405162461bcd60e51b815260040161083e906122d7565b60005b85811015610eed576000878783818110610df157610df161229a565b90506020020135118015610e1f5750611388878783818110610e1557610e1561229a565b9050602002013511155b610e3b5760405162461bcd60e51b815260040161083e90612306565b828282818110610e4d57610e4d61229a565b9050602002013560036000898985818110610e6a57610e6a61229a565b9050602002013581526020019081526020016000206000878785818110610e9357610e9361229a565b9050602002016020810190610ea891906124ae565b6006811115610eb957610eb9612233565b6006811115610eca57610eca612233565b815260208101919091526040016000205580610ee5816122b0565b915050610dd5565b50505050505050565b610efe611ac4565b610f086000611b38565b565b60008281526001602052604081206060919081846004811115610f2f57610f2f612233565b6004811115610f4057610f40612233565b81526020019081526020016000208054610f5990612375565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8590612375565b8015610fd25780601f10610fa757610100808354040283529160200191610fd2565b820191906000526020600020905b815481529060010190602001808311610fb557829003601f168201915b50505050509050600081511161101f5760405162461bcd60e51b81526020600482015260126024820152714e6f20696d61676520617661696c61626c6560701b604482015260640161083e565b9392505050565b61102e611ac4565b60008211801561104057506113888211155b61105c5760405162461bcd60e51b815260040161083e90612306565b600082815260026020526040902061107482826124c9565b505050565b60408051600780825261010082019092526060919060009082816020015b606081526020019060019003908161109757905050905060005b8281101561121e576000858152600360205260408120818360068111156110da576110da612233565b60068111156110eb576110eb612233565b60068111156110fc576110fc612233565b81526020019081526020016000205490506004600083600681111561112357611123612233565b600681111561113457611134612233565b600681111561114557611145612233565b81526020019081526020016000206000828152602001908152602001600020805461116f90612375565b80601f016020809104026020016040519081016040528092919081815260200182805461119b90612375565b80156111e85780601f106111bd576101008083540402835291602001916111e8565b820191906000526020600020905b8154815290600101906020018083116111cb57829003601f168201915b50505050508383815181106111ff576111ff61229a565b6020026020010181905250508080611216906122b0565b9150506110b1565b509392505050565b61122e611adf565b611236611ac4565b848314801561124457508481145b6112605760405162461bcd60e51b815260040161083e906122d7565b60005b858110156113fc57600087878381811061127f5761127f61229a565b905060200201351180156112ad57506113888787838181106112a3576112a361229a565b9050602002013511155b6112c95760405162461bcd60e51b815260040161083e90612306565b60008383838181106112dd576112dd61229a565b90506020028101906112ef919061232f565b9050116113345760405162461bcd60e51b8152602060048201526013602482015272125b5859d94819185d18481c995c5d5a5c9959606a1b604482015260640161083e565b8282828181106113465761134661229a565b9050602002810190611358919061232f565b600160008a8a8681811061136e5761136e61229a565b90506020020135815260200190815260200160002060008888868181106113975761139761229a565b90506020020160208101906113ac9190611dc7565b60048111156113bd576113bd612233565b60048111156113ce576113ce612233565b815260200190815260200160002091826113e99291906123ef565b50806113f4816122b0565b915050611263565b506114076001600055565b505050505050565b604080516007808252610100820190925260609190600090826020820160e08036833701905050905060005b8281101561121e5760008581526003602052604081209082600681111561146457611464612233565b600681111561147557611475612233565b600681111561148657611486612233565b8152602001908152602001600020548282815181106114a7576114a761229a565b6020908102919091010152806114bc816122b0565b91505061143b565b60606114cf82611b76565b92915050565b600082815260016020526040812060609190818460048111156114fa576114fa612233565b600481111561150b5761150b612233565b8152602001908152602001600020805461152490612375565b80601f016020809104026020016040519081016040528092919081815260200182805461155090612375565b801561159d5780601f106115725761010080835404028352916020019161159d565b820191906000526020600020905b81548152906001019060200180831161158057829003601f168201915b5050505050905060008151116115ea5760405162461bcd60e51b81526020600482015260126024820152714e6f20696d61676520617661696c61626c6560701b604482015260640161083e565b60006115f5846114c4565b9050600081511161163d5760405162461bcd60e51b8152602060048201526012602482015271556e6b6e6f776e20696d616765207479706560701b604482015260640161083e565b8082604051602001611650929190612588565b6040516020818303038152906040529250505092915050565b600081815260026020526040902080546060919061168690612375565b80601f01602080910402602001604051908101604052809291908181526020018280546116b290612375565b80156116ff5780601f106116d4576101008083540402835291602001916116ff565b820191906000526020600020905b8154815290600101906020018083116116e257829003601f168201915b50505050509050919050565b60606005600084600681111561172357611723612233565b600681111561173457611734612233565b8152602001908152602001600020600083815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561179d57602002820191906000526020600020905b815481526020019060010190808311611789575b5050505050905092915050565b6000808260048111156117bf576117bf612233565b14806117dc575060018260048111156117da576117da612233565b145b156117e957506000919050565b60028260048111156117fd576117fd612233565b148061181a5750600382600481111561181857611818612233565b145b1561182757506001919050565b600482600481111561183b5761183b612233565b0361184857506002919050565b60405162461bcd60e51b8152602060048201526011602482015270556e6b6e6f776e20496d6167655479706560781b604482015260640161083e565b919050565b611891611ac4565b848314801561189f57508281145b6118bb5760405162461bcd60e51b815260040161083e906122d7565b60005b85811015610eed578282828181106118d8576118d861229a565b90506020028101906118ea919061232f565b600460008a8a868181106119005761190061229a565b905060200201602081019061191591906124ae565b600681111561192657611926612233565b600681111561193757611937612233565b815260200190815260200160002060008888868181106119595761195961229a565b905060200201358152602001908152602001600020918261197b9291906123ef565b5080611986816122b0565b9150506118be565b611996611ac4565b63389a75e1600c52806000526020600c2080544211156119be57636f5e88186000526004601cfd5b600090556119cb81611b38565b50565b6119d6611ac4565b8060601b6119ec57637448fbae6000526004601cfd5b6119cb81611b38565b606060046000846006811115611a0d57611a0d612233565b6006811115611a1e57611a1e612233565b815260200190815260200160002060008381526020019081526020016000208054611a4890612375565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7490612375565b801561179d5780601f10611a965761010080835404028352916020019161179d565b820191906000526020600020905b815481529060010190602001808311611aa4575093979650505050505050565b638b78c6d819543314610f08576382b429006000526004601cfd5b600260005403611b315760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161083e565b6002600055565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b60606000826004811115611b8c57611b8c612233565b1480611ba957506001826004811115611ba757611ba7612233565b145b15611bd357505060408051808201909152600981526834b6b0b3b297b3b4b360b91b602082015290565b6002826004811115611be757611be7612233565b1480611c0457506003826004811115611c0257611c02612233565b145b15611c2e575050604080518082019091526009815268696d6167652f706e6760b81b602082015290565b6004826004811115611c4257611c42612233565b0361184857505060408051808201909152600d81526c1a5b5859d94bdcdd99cade1b5b609a1b602082015290565b50805460008255906000526020600020908101906119cb91905b80821115611c9e5760008155600101611c8a565b5090565b60008083601f840112611cb457600080fd5b5081356001600160401b03811115611ccb57600080fd5b6020830191508360208260051b8501011115611ce657600080fd5b9250929050565b60008060208385031215611d0057600080fd5b82356001600160401b03811115611d1657600080fd5b611d2285828601611ca2565b90969095509350505050565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b83811015611daa57888603603f19018552825180518088529088019088880190845b81811015611d945783518352928a0192918a0191600101611d78565b5090975050509386019391860191600101611d56565b509398975050505050505050565b80356005811061188457600080fd5b600060208284031215611dd957600080fd5b61101f82611db8565b60005b83811015611dfd578181015183820152602001611de5565b50506000910152565b60008151808452611e1e816020860160208601611de2565b601f01601f19169290920160200192915050565b60208152600061101f6020830184611e06565b60008060008060408587031215611e5b57600080fd5b84356001600160401b0380821115611e7257600080fd5b611e7e88838901611ca2565b90965094506020870135915080821115611e9757600080fd5b50611ea487828801611ca2565b95989497509550505050565b80356007811061188457600080fd5b60008060008060608587031215611ed557600080fd5b611ede85611eb0565b93506020850135925060408501356001600160401b03811115611f0057600080fd5b611ea487828801611ca2565b60008060008060608587031215611f2257600080fd5b84359350611f3260208601611db8565b925060408501356001600160401b0380821115611f4e57600080fd5b818701915087601f830112611f6257600080fd5b813581811115611f7157600080fd5b886020828501011115611f8357600080fd5b95989497505060200194505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015611fe757603f19888603018452611fd5858351611e06565b94509285019290850190600101611fb9565b5092979650505050505050565b6000806040838503121561200757600080fd5b8235915061201760208401611eb0565b90509250929050565b6000806000806000806060878903121561203957600080fd5b86356001600160401b038082111561205057600080fd5b61205c8a838b01611ca2565b9098509650602089013591508082111561207557600080fd5b6120818a838b01611ca2565b9096509450604089013591508082111561209a57600080fd5b506120a789828a01611ca2565b979a9699509497509295939492505050565b600080604083850312156120cc57600080fd5b8235915061201760208401611db8565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561210557600080fd5b8235915060208301356001600160401b038082111561212357600080fd5b818501915085601f83011261213757600080fd5b813581811115612149576121496120dc565b604051601f8201601f19908116603f01168101908382118183101715612171576121716120dc565b8160405282815288602084870101111561218a57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000602082840312156121be57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156121fd578351835292840192918401916001016121e1565b50909695505050505050565b6000806040838503121561221c57600080fd5b61222583611eb0565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b602081016003831061226b57634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561228357600080fd5b81356001600160a01b038116811461101f57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016122d057634e487b7160e01b600052601160045260246000fd5b5060010190565b602080825260159082015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b604082015260600190565b6020808252600f908201526e125b9d985b1a59081d1bdad95b9a59608a1b604082015260600190565b6000808335601e1984360301811261234657600080fd5b8301803591506001600160401b0382111561236057600080fd5b602001915036819003821315611ce657600080fd5b600181811c9082168061238957607f821691505b60208210810361084757634e487b7160e01b600052602260045260246000fd5b601f82111561107457600081815260208120601f850160051c810160208610156123d05750805b601f850160051c820191505b81811015611407578281556001016123dc565b6001600160401b03831115612406576124066120dc565b61241a836124148354612375565b836123a9565b6000601f84116001811461244e57600085156124365750838201355b600019600387901b1c1916600186901b17835561094c565b600083815260209020601f19861690835b8281101561247f578685013582556020948501946001909201910161245f565b508682101561249c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000602082840312156124c057600080fd5b61101f82611eb0565b81516001600160401b038111156124e2576124e26120dc565b6124f6816124f08454612375565b846123a9565b602080601f83116001811461252b57600084156125135750858301515b600019600386901b1c1916600185901b178555611407565b600085815260208120601f198616915b8281101561255a5788860151825594840194600190910190840161253b565b50858210156125785787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b643230ba309d60d91b8152600083516125a8816005850160208801611de2565b670ed8985cd94d8d0b60c21b60059184019182015283516125d081600d840160208801611de2565b01600d0194935050505056fea2646970667358221220e8e08b2b76f3b6dba35a8d771768b12d9fca2509bec02bc2451e8d34500d125964736f6c63430008140033