[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SERVER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_admin", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "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": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604080518082018252600a81526926a9aa29102a37b5b2b760b11b60208083019182528351808501909452600484526326a9aa2960e11b90840152815191929162000060916003916200016f565b508051620000769060049060208401906200016f565b5062000089915060009050335b620000bb565b620000b57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000083565b62000252565b620000c78282620000cb565b5050565b60008281526005602090815260408083206001600160a01b038516845290915290205460ff16620000c75760008281526005602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200012b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b8280546200017d9062000215565b90600052602060002090601f016020900481019282620001a15760008555620001ec565b82601f10620001bc57805160ff1916838001178555620001ec565b82800160010185558215620001ec579182015b82811115620001ec578251825591602001919060010190620001cf565b50620001fa929150620001fe565b5090565b5b80821115620001fa5760008155600101620001ff565b6002810460018216806200022a57607f821691505b602082108114156200024c57634e487b7160e01b600052602260045260246000fd5b50919050565b61132f80620002626000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806342966c68116100de578063a217fddf11610097578063d539139311610071578063d53913931461033f578063d547741f14610366578063dd62ed3e14610379578063e63ab1e91461038c57610173565b8063a217fddf14610311578063a457c2d714610319578063a9059cbb1461032c57610173565b806342966c681461029457806370a08231146102a757806379cc6790146102d057806391d14854146102e357806395d89b41146102f6578063983b2d56146102fe57610173565b8063248a9ca311610130578063248a9ca3146102145780632f2ff15d14610237578063313ce5671461024c57806336568abe1461025b578063395093511461026e57806340c10f191461028157610173565b806301ffc9a71461017857806306fdde03146101a0578063095ea7b3146101b557806318160ddd146101c857806318cf2834146101da57806323b872dd14610201575b600080fd5b61018b610186366004611147565b6103b3565b60405190151581526020015b60405180910390f35b6101a86103ec565b60405161019791906111e4565b61018b6101c33660046110e4565b61047e565b6002545b604051908152602001610197565b6101cc7fa8a7bc421f721cb936ea99efdad79237e6ee0b871a2a08cf648691f9584cdc7781565b61018b61020f3660046110a9565b610496565b6101cc61022236600461110d565b60009081526005602052604090206001015490565b61024a610245366004611125565b6104ba565b005b60405160128152602001610197565b61024a610269366004611125565b6104e4565b61018b61027c3660046110e4565b610567565b61024a61028f3660046110e4565b610589565b61024a6102a236600461110d565b610609565b6101cc6102b536600461105d565b6001600160a01b031660009081526020819052604090205490565b61024a6102de3660046110e4565b610616565b61018b6102f1366004611125565b61062b565b6101a8610656565b61024a61030c36600461105d565b610665565b6101cc600081565b61018b6103273660046110e4565b61068f565b61018b61033a3660046110e4565b61070a565b6101cc7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61024a610374366004611125565b610718565b6101cc610387366004611077565b61073d565b6101cc7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006001600160e01b03198216637965db0b60e01b14806103e457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b6060600380546103fb906112a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610427906112a8565b80156104745780601f1061044957610100808354040283529160200191610474565b820191906000526020600020905b81548152906001019060200180831161045757829003601f168201915b5050505050905090565b60003361048c818585610768565b5060019392505050565b6000336104a485828561088c565b6104af858585610906565b506001949350505050565b6000828152600560205260409020600101546104d581610ad4565b6104df8383610ade565b505050565b6001600160a01b03811633146105595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105638282610b64565b5050565b60003361048c81858561057a838361073d565b6105849190611217565b610768565b6105b37f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336102f1565b6105ff5760405162461bcd60e51b815260206004820181905260248201527f4d6f6e7374657272613a206d7573742068617665206d696e74657220726f6c656044820152606401610550565b6105638282610bcb565b6106133382610cab565b50565b61062182338361088c565b6105638282610cab565b60009182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060600480546103fb906112a8565b6106137f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6826104ba565b6000338161069d828661073d565b9050838110156106fd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610550565b6104af8286868403610768565b60003361048c818585610906565b60008281526005602052604090206001015461073381610ad4565b6104df8383610b64565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166107ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610550565b6001600160a01b03821661082b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610550565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610898848461073d565b9050600019811461090057818110156108f35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610550565b6109008484848403610768565b50505050565b6001600160a01b03831661096a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610550565b6001600160a01b0382166109cc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610550565b6001600160a01b03831660009081526020819052604090205481811015610a445760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610550565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610a7b908490611217565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ac791815260200190565b60405180910390a3610900565b6106138133610df9565b610ae8828261062b565b6105635760008281526005602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610b203390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610b6e828261062b565b156105635760008281526005602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6001600160a01b038216610c215760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610550565b8060026000828254610c339190611217565b90915550506001600160a01b03821660009081526020819052604081208054839290610c60908490611217565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610563565b6001600160a01b038216610d0b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610550565b6001600160a01b03821660009081526020819052604090205481811015610d7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610550565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610dae90849061124e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36104df565b610e03828261062b565b61056357610e1b816001600160a01b03166014610e5d565b610e26836020610e5d565b604051602001610e3792919061116f565b60408051601f198184030181529082905262461bcd60e51b8252610550916004016111e4565b60606000610e6c83600261122f565b610e77906002611217565b67ffffffffffffffff811115610e9d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610ec7576020820181803683370190505b509050600360fc1b81600081518110610ef057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610f2d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000610f5184600261122f565b610f5c906001611217565b90505b6001811115610ff0576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610f9e57634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110610fc257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93610fe981611291565b9050610f5f565b50831561103f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610550565b9392505050565b80356001600160a01b03811681146103e757600080fd5b60006020828403121561106e578081fd5b61103f82611046565b60008060408385031215611089578081fd5b61109283611046565b91506110a060208401611046565b90509250929050565b6000806000606084860312156110bd578081fd5b6110c684611046565b92506110d460208501611046565b9150604084013590509250925092565b600080604083850312156110f6578182fd5b6110ff83611046565b946020939093013593505050565b60006020828403121561111e578081fd5b5035919050565b60008060408385031215611137578182fd5b823591506110a060208401611046565b600060208284031215611158578081fd5b81356001600160e01b03198116811461103f578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516111a7816017850160208801611265565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516111d8816028840160208801611265565b01602801949350505050565b6000602082528251806020840152611203816040850160208701611265565b601f01601f19169190910160400192915050565b6000821982111561122a5761122a6112e3565b500190565b6000816000190483118215151615611249576112496112e3565b500290565b600082821015611260576112606112e3565b500390565b60005b83811015611280578181015183820152602001611268565b838111156109005750506000910152565b6000816112a0576112a06112e3565b506000190190565b6002810460018216806112bc57607f821691505b602082108114156112dd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220bf77c5dafd11d6bf568d00347df50b3849a27d2ab67c128782465316907f62ab64736f6c63430008020033