[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CallerNotContractOwner", "type": "error" }, { "inputs": [], "name": "InconsistentParametersLengths", "type": "error" }, { "inputs": [], "name": "InexistentTicket", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "role", "type": "uint256" } ], "name": "MissingRole", "type": "error" }, { "inputs": [], "name": "NoApprovals", "type": "error" }, { "inputs": [], "name": "NoOp", "type": "error" }, { "inputs": [], "name": "QueryForAddressZero", "type": "error" }, { "inputs": [], "name": "TransferRejected", "type": "error" }, { "inputs": [], "name": "TransferToAddressZero", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "startId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "NewTicket", "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": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "role", "type": "uint256" }, { "indexed": true, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "RoleUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "batchMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getRoles", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "ticketId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "refreshMetadata", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "bool", "name": "", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint8", "name": "role", "type": "uint8" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newuri", "type": "string" } ], "name": "setURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "supplyOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
608060405234801561000f575f80fd5b5061001c335f6001610033565b600180546001600160a01b03191633179055610090565b6001600160a01b0383165f8181526020819052604080822080545f196001881b181685871b179055518315159260ff86169290917f3e4657b0da61ffd251af36cb52bd766075e299a246b4cb5f3a200bdbdea2c0939190a4505050565b6116fe8061009d5f395ff3fe608060405234801561000f575f80fd5b50600436106100e3575f3560e01c8062fdd58e146100e757806301ffc9a71461012e57806302fe5305146101515780630ca83480146101665780630e89341c14610179578063156e29f6146101995780632eb2c2d6146101ac5780634e1273f4146101bf5780638806792f146101df5780638da5cb5b146101fe578063a22cb46514610229578063ce6ccfaf1461023c578063d95ba42f14610264578063d9dad80d14610277578063e985e9c51461028a578063f242432a1461029f578063f2fde38b146102ad578063f6bb6b37146102c0575b5f80fd5b61011b6100f5366004610d99565b5f9081526002602090815260408083206001600160a01b03949094168352929052205490565b6040519081526020015b60405180910390f35b61014161013c366004610dd9565b6102d3565b6040519015158152602001610125565b61016461015f366004610e3f565b61033f565b005b610164610174366004610f14565b61037a565b61018c610187366004610f8e565b6105c3565b6040516101259190610fc7565b6101646101a7366004610ff9565b6105f7565b6101646101ba366004611066565b610700565b6101d26101cd3660046111a6565b610719565b6040516101259190611299565b61011b6101ed366004610f8e565b5f9081526003602052604090205490565b600154610211906001600160a01b031681565b6040516001600160a01b039091168152602001610125565b6101646102373660046112ba565b610820565b61011b61024a3660046112eb565b6001600160a01b03165f9081526020819052604090205490565b610164610272366004610f8e565b610839565b610211610285366004611304565b61087c565b610141610298366004611324565b5f92915050565b6101646101ba36600461134c565b6101646102bb3660046112eb565b610901565b6101646102ce3660046113be565b610977565b5f6001600160e01b03198216639141187b60e01b148061030357506001600160e01b03198216636cdb3d1360e11b145b8061031e57506001600160e01b031982166303a24d0760e21b145b8061033957506001600160e01b031982166301ffc9a760e01b145b92915050565b6001546001600160a01b0316331461036a57604051631e0e483560e11b815260040160405180910390fd5b60056103768282611481565b5050565b60016103863382610993565b6001600160a01b0386166103ad5760405163dc7eb92b60e01b815260040160405180910390fd5b8382146103cd57604051630d3351c560e41b815260040160405180910390fd5b335f5b858110156104f0575f8787838181106103eb576103eb61153c565b9050602002013590505f8686848181106104075761040761153c565b9050602002013590505f60035f8481526020019081526020015f205490508160025f8581526020019081526020015f205f8d6001600160a01b03166001600160a01b031681526020019081526020015f205f82825401925050819055508160035f8581526020019081526020015f205f82825401925050819055508a60045f8581526020019081526020015f205f8381526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055508360010193508181845f805160206116a983398151915260405160405180910390a45050506103d0565b50866001600160a01b03165f6001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898989896040516105449493929190611580565b60405180910390a46105ba815f898989808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080516020808d0282810182019093528c82529093508c92508b9182918501908490808284375f920191909152506109eb92505050565b50505050505050565b606060056105d083610ac3565b6040516020016105e19291906115b1565b6040516020818303038152906040529050919050565b60016106033382610993565b6001600160a01b03841661062a5760405163dc7eb92b60e01b815260040160405180910390fd5b5f8381526003602090815260408083208054600284528285206001600160a01b038a168087529085528386208054890190558886528782019092556004845282852081865290935281842080546001600160a01b03191690911790555133928591839188915f805160206116a98339815191529190a460408051868152602081018690526001600160a01b03808916925f92918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46106f8825f888888610b52565b505050505050565b604051632723972f60e11b815260040160405180910390fd5b6060815183511461073d57604051630d3351c560e41b815260040160405180910390fd5b5f83516001600160401b0381111561075757610757610dfb565b604051908082528060200260200182016040528015610780578160200160208202803683370190505b5090505f5b84518110156108185760025f8583815181106107a3576107a361153c565b602002602001015181526020019081526020015f205f8683815181106107cb576107cb61153c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20548282815181106108055761080561153c565b6020908102919091010152600101610785565b509392505050565b604051635371a06b60e11b815260040160405180910390fd5b807f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b610864836105c3565b6040516108719190610fc7565b60405180910390a250565b5f8281526003602052604081205482106108a95760405163bd5fbbf760e01b815260040160405180910390fd5b5b5f8381526004602090815260408083208584529091529020546001600160a01b03166108db575f19909101906108aa565b505f9182526004602090815260408084209284529190529020546001600160a01b031690565b6001546001600160a01b0316331461092c57604051631e0e483560e11b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a350565b5f6109823382610993565b61098d848484610c3d565b50505050565b6001600160a01b0382165f90815260208190526040902054600181831c166109e65760405163607b74c960e11b81526001600160a01b038416600482015260ff8316602482015260440160405180910390fd5b505050565b6109fd836001600160a01b0316610c9a565b15610abc5760405163bc197c8160e01b81526001600160a01b0384169063bc197c8190610a34908890889087908790600401611634565b6020604051808303815f875af1925050508015610a6e575060408051601f3d908101601f19168201909252610a6b9181019061168d565b60015b610a8b57604051632723972f60e11b815260040160405180910390fd5b6001600160e01b0319811663bc197c8160e01b146106f857604051632723972f60e11b815260040160405180910390fd5b5050505050565b60605f610acf83610ca9565b60010190505f816001600160401b03811115610aed57610aed610dfb565b6040519080825280601f01601f191660200182016040528015610b17576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b2157509392505050565b610b64836001600160a01b0316610c9a565b15610abc5760405163f23a6e6160e01b81526001600160a01b0386811660048301528581166024830152604482018490526064820183905260a060848301525f60a483015284169063f23a6e619060c4016020604051808303815f875af1925050508015610bef575060408051601f3d908101601f19168201909252610bec9181019061168d565b60015b610c0c57604051632723972f60e11b815260040160405180910390fd5b6001600160e01b0319811663f23a6e6160e01b146106f857604051632723972f60e11b815260040160405180910390fd5b6001600160a01b0383165f8181526020819052604080822080545f196001881b181685871b179055518315159260ff86169290917f3e4657b0da61ffd251af36cb52bd766075e299a246b4cb5f3a200bdbdea2c0939190a4505050565b6001600160a01b03163b151590565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610ce75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310610d11576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310610d2f57662386f26fc10000830492506010015b6305f5e1008310610d47576305f5e100830492506008015b6127108310610d5b57612710830492506004015b60648310610d6d576064830492506002015b600a83106103395760010192915050565b80356001600160a01b0381168114610d94575f80fd5b919050565b5f8060408385031215610daa575f80fd5b610db383610d7e565b946020939093013593505050565b6001600160e01b031981168114610dd6575f80fd5b50565b5f60208284031215610de9575f80fd5b8135610df481610dc1565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715610e3757610e37610dfb565b604052919050565b5f6020808385031215610e50575f80fd5b82356001600160401b0380821115610e66575f80fd5b818501915085601f830112610e79575f80fd5b813581811115610e8b57610e8b610dfb565b610e9d601f8201601f19168501610e0f565b91508082528684828501011115610eb2575f80fd5b80848401858401375f90820190930192909252509392505050565b5f8083601f840112610edd575f80fd5b5081356001600160401b03811115610ef3575f80fd5b6020830191508360208260051b8501011115610f0d575f80fd5b9250929050565b5f805f805f60608688031215610f28575f80fd5b610f3186610d7e565b945060208601356001600160401b0380821115610f4c575f80fd5b610f5889838a01610ecd565b90965094506040880135915080821115610f70575f80fd5b50610f7d88828901610ecd565b969995985093965092949392505050565b5f60208284031215610f9e575f80fd5b5035919050565b5f5b83811015610fbf578181015183820152602001610fa7565b50505f910152565b602081525f8251806020840152610fe5816040850160208701610fa5565b601f01601f19169190910160400192915050565b5f805f6060848603121561100b575f80fd5b61101484610d7e565b95602085013595506040909401359392505050565b5f8083601f840112611039575f80fd5b5081356001600160401b0381111561104f575f80fd5b602083019150836020828501011115610f0d575f80fd5b5f805f805f805f8060a0898b03121561107d575f80fd5b61108689610d7e565b975061109460208a01610d7e565b965060408901356001600160401b03808211156110af575f80fd5b6110bb8c838d01610ecd565b909850965060608b01359150808211156110d3575f80fd5b6110df8c838d01610ecd565b909650945060808b01359150808211156110f7575f80fd5b506111048b828c01611029565b999c989b5096995094979396929594505050565b5f6001600160401b0382111561113057611130610dfb565b5060051b60200190565b5f82601f830112611149575f80fd5b8135602061115e61115983611118565b610e0f565b8083825260208201915060208460051b87010193508684111561117f575f80fd5b602086015b8481101561119b5780358352918301918301611184565b509695505050505050565b5f80604083850312156111b7575f80fd5b82356001600160401b03808211156111cd575f80fd5b818501915085601f8301126111e0575f80fd5b813560206111f061115983611118565b82815260059290921b8401810191818101908984111561120e575f80fd5b948201945b838610156112335761122486610d7e565b82529482019490820190611213565b96505086013592505080821115611248575f80fd5b506112558582860161113a565b9150509250929050565b5f815180845260208085019450602084015f5b8381101561128e57815187529582019590820190600101611272565b509495945050505050565b602081525f610df4602083018461125f565b80358015158114610d94575f80fd5b5f80604083850312156112cb575f80fd5b6112d483610d7e565b91506112e2602084016112ab565b90509250929050565b5f602082840312156112fb575f80fd5b610df482610d7e565b5f8060408385031215611315575f80fd5b50508035926020909101359150565b5f8060408385031215611335575f80fd5b61133e83610d7e565b91506112e260208401610d7e565b5f805f805f8060a08789031215611361575f80fd5b61136a87610d7e565b955061137860208801610d7e565b9450604087013593506060870135925060808701356001600160401b038111156113a0575f80fd5b6113ac89828a01611029565b979a9699509497509295939492505050565b5f805f606084860312156113d0575f80fd5b6113d984610d7e565b9250602084013560ff811681146113ee575f80fd5b91506113fc604085016112ab565b90509250925092565b600181811c9082168061141957607f821691505b60208210810361143757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156109e657805f5260205f20601f840160051c810160208510156114625750805b601f840160051c820191505b81811015610abc575f815560010161146e565b81516001600160401b0381111561149a5761149a610dfb565b6114ae816114a88454611405565b8461143d565b602080601f8311600181146114e1575f84156114ca5750858301515b5f19600386901b1c1916600185901b1785556106f8565b5f85815260208120601f198616915b8281101561150f578886015182559484019460019091019084016114f0565b508582101561152c57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b8183525f6001600160fb1b03831115611567575f80fd5b8260051b80836020870137939093016020019392505050565b604081525f611593604083018688611550565b82810360208401526115a6818587611550565b979650505050505050565b5f8084546115be81611405565b600182811680156115d657600181146115eb57611617565b60ff1984168752821515830287019450611617565b885f526020805f205f5b8581101561160e5781548a8201529084019082016115f5565b50505082870194505b50505050835161162b818360208801610fa5565b01949350505050565b6001600160a01b0385811682528416602082015260a0604082018190525f9061165f9083018561125f565b8281036060840152611671818561125f565b83810360809094019390935250505f8152602001949350505050565b5f6020828403121561169d575f80fd5b8151610df481610dc156fec8a12edf67a588d927c432e59b6adf4764e2d1183ff137b0e5f9a21cedcc6259a26469706673582212207dd9efacb1f3b9f3a24bc8a2b5cebadf918153b6ca64ee2c31d05e5b7b70ee5c64736f6c63430008180033