245 txs
511 calls
constructor
constructor(address _normies, address vrfV2PlusWrapper, address owner)
functions
cardsByRarity
viewfunction cardsByRarity(uint8, uint256) view returns (uint16)
getBalance
viewfunction getBalance() view returns (uint256)
getCardsByRarity
viewfunction getCardsByRarity(uint8 rarity) view returns (uint16[])
getLinkToken
viewfunction getLinkToken() view returns (address)
i_vrfV2PlusWrapper
viewfunction i_vrfV2PlusWrapper() view returns (address)
nextCardId
viewfunction nextCardId() view returns (uint16)
normies
viewfunction normies() view returns (address)
owner
viewfunction owner() view returns (address)
packToRequestId
viewfunction packToRequestId(uint256) view returns (uint256)
requestIdToPackId
viewfunction requestIdToPackId(uint256) view returns (uint256)
addCardsToRarity
nonpayablefunction addCardsToRarity(uint8 rarity, uint256 quantity) returns (uint16[] cardIds)
initiatePackOpening
payablefunction initiatePackOpening(uint256 packTokenId) payable returns (uint256 requestId)
rawFulfillRandomWords
nonpayablefunction rawFulfillRandomWords(uint256 _requestId, uint256[] _randomWords)
renounceOwnership
nonpayablefunction renounceOwnership()
rescueERC20
nonpayablefunction rescueERC20(address token)
rescueERC721
nonpayablefunction rescueERC721(address token, uint256 tokenId)
rescueETH
nonpayablefunction rescueETH()
resetPackOpeningState
nonpayablefunction resetPackOpeningState(uint256 packTokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
CardsAddedToRarity
event CardsAddedToRarity(uint8 indexed rarity, uint16[] cardIds)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PackOpened
event PackOpened(address indexed opener, uint256 indexed packTokenId, uint256[] cardTokenIds)
PackOpeningInitiated
event PackOpeningInitiated(uint256 indexed packTokenId, address indexed owner, uint256 indexed requestId)
PackOpeningReset
event PackOpeningReset(uint256 indexed packTokenId, uint256 indexed requestId)
VRFFulfilled
event VRFFulfilled(uint256 indexed requestId, uint256[] randomWords)
VRFRequested
event VRFRequested(uint256 indexed requestId, uint256 indexed packTokenId, address indexed owner)
errors
OnlyVRFWrapperCanFulfill
error OnlyVRFWrapperCanFulfill(address have, address want)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60e0806040523461018c576060816121df803803809161001f82856101a3565b83398101031261018c578051906001600160a01b038216820361018c57610054604061004d602084016101da565b92016101da565b604051630711a57d60e21b815290916001600160a01b031690602081600481855afa908115610198575f9161015a575b506001600160a01b0390811660805260a09190915216908115610147575f80546001600160a01b031981168417825560405193916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360018055600261ffff19600554161760055560c052611ff090816101ef8239608051816101f0015260a05181818161048801528181610d780152611529015260c0518181816105710152818161065e01528181610c2701526115c60152f35b631e4fbdf760e01b5f525f60045260245ffd5b90506020813d602011610190575b81610175602093836101a3565b8101031261018c57610186906101da565b5f610084565b5f80fd5b3d9150610168565b6040513d5f823e3d90fd5b601f909101601f19168101906001600160401b038211908210176101c657604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361018c5756fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c90816312065fe014611d13575080631fe543e3146114b257806320800a0014611412578063261c6e9b14610bf95780632fbfbe84146108b657806330a3d2fe146106b75780633220bfba1461068d57806335facc85146106485780634f43ce5414610538578063715018a6146104de5780638da5cb5b146104b75780639ed0868d14610472578063b20b1bfb14610448578063c5263e8c14610426578063ccec3716146102d9578063d79818341461021f578063e76d5168146101da578063f2fde38b1461014c5763ffc790fe0361000f57346101495760403660031901126101495761010e611d79565b60ff1681526004602052604081208054602435929083101561014957602061ffff6101398585611dc0565b90549060031b1c16604051908152f35b80fd5b5034610149576020366003190112610149576004356001600160a01b038116908190036101d65761017b611ef5565b80156101c25781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b50346101495780600319360112610149576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461014957604036600319011261014957806004356001600160a01b038116908190036102d65761024f611ef5565b610257611f1b565b81546001600160a01b031661026d811515611f3b565b813b156102d45782916064839260405194859384926323b872dd60e01b8452306004850152602484015260243560448401525af180156102c9576102b4575b506001805580f35b816102be91611d2b565b61014957805f6102ac565b6040513d84823e3d90fd5b505b50fd5b5034610149576020366003190112610149576004356001600160a01b0381169081810361042257610308611ef5565b610310611f1b565b82546001600160a01b0316908390610329831515611f3b565b6040516370a0823160e01b815230600482015292602084602481885afa9384156104175783946103dc575b5083610363575b826001805580f35b82602094604051908682019363a9059cbb60e01b85526024830152604482015260448152610392606482611d2b565b51925af1156103cf5781513d6103c65750803b155b6103b4578082818061035b565b635274afe760e01b8252600452602490fd5b600114156103a7565b50604051903d90823e3d90fd5b925092506020823d60201161040f575b816103f960209383611d2b565b8101031261040b57849151925f610354565b5f80fd5b3d91506103ec565b6040513d85823e3d90fd5b8280fd5b5034610149578060031936011261014957602061ffff60055416604051908152f35b50346101495760203660031901126101495760406020916004358152600383522054604051908152f35b50346101495780600319360112610149576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610149578060031936011261014957546040516001600160a01b039091168152602090f35b50346101495780600319360112610149576104f7611ef5565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461014957602036600319011261014957600435610555611ef5565b60405163463d31d760e11b8152600481018290526060816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156104175760ff6001916105ba938691610617575b50161115611e57565b8082526003602052604082205490816105d1578280f35b818352600260205282604081205580835260036020528260408120557f2d70b029a88345bc5ecb669a89fd751a5e59c3f4be7173d05bb453ecae937a048380a35f808280f35b610639915060603d606011610641575b6106318183611d2b565b810190611e22565b50505f6105b1565b503d610627565b50346101495780600319360112610149576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101495760203660031901126101495760406020916004358152600283522054604051908152f35b5034610149576040366003190112610149576106d1611d79565b60ff602435916106df611ef5565b1660028110610865578115610820576106f782611d61565b916107056040519384611d2b565b808352601f1961071482611d61565b01366020850137835b81811061077a5761077684847f7ad57a29a643fc587725d0c67312ba1a929bae55b316fe586f66e6d08e2f51d6604051602081528061075f6020820186611d89565b0390a2604051918291602083526020830190611d89565b0390f35b61ffff600554168061078c8387611ea8565b52838652600460205260408620805490600160401b82101561080c57906107b891600182018155611dc0565b61ffff829392549160031b92831b921b191617905560055461ffff811661ffff81146107f85761ffff19909116600191820161ffff16176005550161071d565b634e487b7160e01b87526011600452602487fd5b634e487b7160e01b88526041600452602488fd5b60405162461bcd60e51b815260206004820152601f60248201527f5175616e74697479206d7573742062652067726561746572207468616e2030006044820152606490fd5b60405162461bcd60e51b8152602060048201526024808201527f496e76616c696420726172697479202d206d75737420626520636172642072616044820152637269747960e01b6064820152608490fd5b50346101495760203660031901126101495760ff6108d2611d79565b1681526004602052604081206040519081602082549182815201918452602084205b81600f860110610b175791610776948492610991945491818110610b02575b818110610aea575b818110610ad3575b818110610abb575b818110610aa3575b818110610a8b575b818110610a73575b818110610a5b575b818110610a43575b818110610a2b575b818110610a13575b8181106109fb575b8181106109e3575b8181106109cb575b8181106109b3575b106109a5575b500382611d2b565b604051918291602083526020830190611d89565b60f01c81526020015f610989565b92602060019161ffff8560e01c168152019301610983565b92602060019161ffff8560d01c16815201930161097b565b92602060019161ffff8560c01c168152019301610973565b92602060019161ffff8560b01c16815201930161096b565b92602060019161ffff8560a01c168152019301610963565b92602060019161ffff8560901c16815201930161095b565b92602060019161ffff8560801c168152019301610953565b92602060019161ffff8560701c16815201930161094b565b92602060019161ffff8560601c168152019301610943565b92602060019161ffff8560501c16815201930161093b565b92602060019161ffff8560401c168152019301610933565b92602060019161ffff8560301c16815201930161092b565b92602060019161ffff85831c168152019301610923565b92602060019161ffff8560101c16815201930161091b565b92602060019161ffff85168152019301610913565b916001610200601092855461ffff8116825261ffff81861c16602083015261ffff8160201c16604083015261ffff8160301c16606083015261ffff8160401c16608083015261ffff8160501c1660a083015261ffff8160601c1660c083015261ffff8160701c1660e083015261ffff8160801c1661010083015261ffff8160901c1661012083015261ffff8160a01c1661014083015261ffff8160b01c1661016083015261ffff8160c01c1661018083015261ffff8160d01c166101a083015261ffff8160e01c166101c083015260f01c6101e08201520193019401936108f4565b50602036600319011261014957600435610c11611f1b565b6040516331a9108f60e11b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081602481855afa908115610fb65784916113e3575b50336001600160a01b03909116036113a35760405163463d31d760e11b815260048101839052606081602481855afa8015610fb65760ff918591611382575b5016610cb56001821115611e57565b600181146112b4575b15611163575b508082526003602052604082205461111f576002825260046020526040822054156110c75760038252600460205260408220541561107157600482526004602052604082205415611017576040516020810181811067ffffffffffffffff8211176110035760405260018152604051602081019163125fa26760e31b8352511515602482015260248152610d59604482611d2b565b6040516313c34b7f60e01b8152620f42406004820152600760248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929091602083604481875afa928315610ff8578693610fc1575b509060a49360209284604051968780958194634e7e02c760e11b8352620f424060048401526003602484015260076044840152608060648401525180918160848501528484015e81810183018c9052601f01601f191681010301925af1918215610fb6578492610f82575b50803410610f2b57818452600260205282604085205582845260036020528160408520558034115f14610f24573403348111610f10575b80610ebf575b5080602093604051933381847f880843155b7746c27070546db058be7d284e0b3dfa715945eeaf2cc08a8965188580a47f2e5cccc0aaa1b6c57c2ca0dc311aca0fa7de1d9d65d845ac15267d501ae07e17339280a4600180558152f35b8380808093335af1610ecf611f7b565b5015610edb575f610e62565b60405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606490fd5b634e487b7160e01b84526011600452602484fd5b5082610e5c565b60405162461bcd60e51b815260206004820152602960248201527f496e73756666696369656e74204554482070726f766964656420666f7220565260448201526811881c995c5d595cdd60ba1b6064820152608490fd5b9091506020813d602011610fae575b81610f9e60209383611d2b565b8101031261040b5751905f610e25565b3d9150610f91565b6040513d86823e3d90fd5b919092506020823d602011610ff0575b81610fde60209383611d2b565b8101031261040b5790519160a4610dba565b3d9150610fd1565b6040513d88823e3d90fd5b634e487b7160e01b84526041600452602484fd5b60405162461bcd60e51b815260206004820152602c60248201527f4e6f206d6f64696669657220636172647320617661696c61626c6520666f722060448201526b7061636b206f70656e696e6760a01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602860248201527f4e6f207261726520636172647320617661696c61626c6520666f72207061636b604482015267206f70656e696e6760c01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602a60248201527f4e6f20636f6d6d6f6e20636172647320617661696c61626c6520666f72207061604482015269636b206f70656e696e6760b01b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f5061636b206f70656e696e6720616c726561647920696e2070726f67726573736044820152fd5b6040516302d9512f60e61b8152602081600481855afa908115610fb6578491611285575b5060038110156112715760021490811591611206575b50156111a9575f610cc4565b60405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f74206f70656e206e6f726d616c207061636b20756e74696c206c6160448201526e7374206368616e636520706861736560881b6064820152608490fd5b6040516342f09f3960e11b81529150602090829060049082905afa908115610417578391611236575b505f61119d565b90506020813d602011611269575b8161125160209383611d2b565b8101031261042257518015158103610422575f61122f565b3d9150611244565b634e487b7160e01b84526021600452602484fd5b6112a7915060203d6020116112ad575b61129f8183611d2b565b810190611e90565b5f611187565b503d611295565b6040516302d9512f60e61b8152602081600481865afa908115611377578591611358575b50600381101561134457600103610cbe5760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f74206f70656e206865617679207061636b20647572696e6720686560448201526c617679207061636b2073616c6560981b6064820152608490fd5b634e487b7160e01b85526021600452602485fd5b611371915060203d6020116112ad5761129f8183611d2b565b5f6112d8565b6040513d87823e3d90fd5b61139b915060603d606011610641576106318183611d2b565b50505f610ca6565b60405162461bcd60e51b815260206004820152601860248201527727b7363c903830b1b59037bbb732b91031b0b71037b832b760411b6044820152606490fd5b611405915060203d60201161140b575b6113fd8183611d2b565b810190611df5565b5f610c67565b503d6113f3565b503461014957806003193601126101495761142b611ef5565b611433611f1b565b805481906001600160a01b031661144b811515611f3b565b478061145957826001805580f35b8280929181925af1611469611f7b565b501561147757805f8061035b565b60405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606490fd5b503461040b57604036600319011261040b5760243560043567ffffffffffffffff821161040b573660238301121561040b578160040135916114f383611d61565b926115016040519485611d2b565b8084526024602085019160051b8301019136831161040b57602401905b828210611d035750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905033819003611ced5750805f52600260205260405f205491825f5260036020528160405f205403611cb057817f9b7c329421e06063bd2f20f3c5ee656eb0416baf5165979517d09353551b88d3604051806115ad8582611ebc565b0390a26040516331a9108f60e11b8152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081602481855afa9081156117cd575f91611c91575b5060405163463d31d760e11b81526004810186905291606083602481845afa9283156117cd575f93611c6d575b50610100604051936116458286611d2b565b60078552601f1982019182366020880137604051966116648289611d2b565b60078852833660208a01376040519261167d8385611d2b565b600784526020840194368637604051631d5e528f60e21b81526020816004818a5afa9081156117cd575f91611c3b575b50925f935b600785106117f4575050505050823b1561040b5760405163077fcaa160e11b8152600481018990526001600160a01b0390941660248501819052608060448601529584929190602090611709906084860190611d89565b8481036003190160648601529151808352910191905f5b8181106117d85750505091815f81819503925af180156117cd57611793575b50907fbccebe0362c96b45dc435eab09685089cf23b2641b8a3b90274b4608d1e9d9b3611773859360405191829182611ebc565b0390a3825260026020528160408120558152600360205280604081205580f35b84929195505f6117a291611d2b565b5f949091507fbccebe0362c96b45dc435eab09685089cf23b2641b8a3b90274b4608d1e9d9b361173f565b6040513d5f823e3d90fd5b825160ff16845286945060209384019390920191600101611720565b6117fe8585611ea8565b5160026005871480611c2c575b8015611c22575b611bfa575b60ff1690815f52600460205260405f2090604051808360208295549384815201905f5260205f20925f905b80600f830110611b14576118d8945491818110611aff575b818110611ae7575b818110611ad0575b818110611ab8575b818110611aa0575b818110611a88575b818110611a70575b818110611a58575b818110611a40575b818110611a28575b818110611a10575b8181106119f8575b8181106119e0575b8181106119c8575b8181106119b0575b106119a2575b500383611d2b565b81511561195d5781519182156119495761ffff8f938a92611901916119099560081c0690611ea8565b511692611ea8565b526119148688611ea8565b5280611920868c611ea8565b525f19811461193557600194850194016116b2565b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b60405162461bcd60e51b815260206004820152601d60248201527f4e6f20636172647320617661696c61626c6520666f72207261726974790000006044820152606490fd5b60f01c81526020015f6118d0565b92602060019161ffff8560e01c1681520193016118ca565b92602060019161ffff8560d01c1681520193016118c2565b92602060019161ffff8560c01c1681520193016118ba565b92602060019161ffff8560b01c1681520193016118b2565b92602060019161ffff8560a01c1681520193016118aa565b92602060019161ffff8560901c1681520193016118a2565b92602060019161ffff8560801c16815201930161189a565b92602060019161ffff8560701c168152019301611892565b92602060019161ffff8560601c16815201930161188a565b92602060019161ffff8560501c168152019301611882565b92602060019161ffff8560401c16815201930161187a565b92602060019161ffff8560301c168152019301611872565b92602060019161ffff85831c16815201930161186a565b92602060019161ffff8560101c168152019301611862565b92602060019161ffff8516815201930161185a565b916010919350610200600191865461ffff8116825261ffff81861c16602083015261ffff8160201c16604083015261ffff8160301c16606083015261ffff8160401c16608083015261ffff8160501c1660a083015261ffff8160601c1660c083015261ffff8160701c1660e083015261ffff8160801c168d83015261ffff8160901c1661012083015261ffff8160a01c1661014083015261ffff8160b01c1661016083015261ffff8160c01c1661018083015261ffff8160d01c166101a083015261ffff8160e01c166101c083015260f01c6101e0820152019401920185929391611842565b506103e86127108260101c06105f14611c195760ff60045b9050611817565b60ff6003611c12565b5060068714611812565b5060ff8516606483061061180b565b90506020813d602011611c65575b81611c5660209383611d2b565b8101031261040b57515f6116ad565b3d9150611c49565b611c8791935060603d606011610641576106318183611d2b565b915050915f611633565b611caa915060203d60201161140b576113fd8183611d2b565b5f611606565b60405162461bcd60e51b8152602060048201526015602482015274159491881c995c5d595cdd081b9bdd08199bdd5b99605a1b6044820152606490fd5b6345d498b760e11b5f523360045260245260445ffd5b813581526020918201910161151e565b3461040b575f36600319011261040b57602090478152f35b90601f8019910116810190811067ffffffffffffffff821117611d4d57604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff8111611d4d5760051b60200190565b6004359060ff8216820361040b57565b90602080835192838152019201905f5b818110611da65750505090565b825161ffff16845260209384019390920191600101611d99565b9190918054831015611de1575f52601e60205f208360041c019260011b1690565b634e487b7160e01b5f52603260045260245ffd5b9081602091031261040b57516001600160a01b038116810361040b5790565b519060ff8216820361040b57565b9081606091031261040b57611e3681611e14565b91602082015161ffff8116810361040b576040611e54919301611e14565b90565b15611e5e57565b60405162461bcd60e51b815260206004820152600a6024820152694e6f742061207061636b60b01b6044820152606490fd5b9081602091031261040b5751600381101561040b5790565b8051821015611de15760209160051b010190565b60206040818301928281528451809452019201905f5b818110611edf5750505090565b8251845260209384019390920191600101611ed2565b5f546001600160a01b03163303611f0857565b63118cdaa760e01b5f523360045260245ffd5b600260015414611f2c576002600155565b633ee5aeb560e01b5f5260045ffd5b15611f4257565b60405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081c9958da5c1a595b9d607a1b6044820152606490fd5b3d15611fb5573d9067ffffffffffffffff8211611d4d5760405191611faa601f8201601f191660200184611d2b565b82523d5f602084013e565b60609056fea26469706673582212204f1cdc37567c74835b5f5417504fe3c79864ed0577e1aa8c3b65ead02738dfad64736f6c634300081e0033000000000000000000000000b5ab2c4528c9a8da3208956fa4c0fd14533e300a00000000000000000000000002aae1a04f9828517b3007f83f6181900cad910c000000000000000000000000b72392b77ba872ac8b80ceedb3a4054349730f3b