[ { "inputs": [ { "internalType": "address", "name": "_admin", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "INITIAL_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NAME", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SYMBOL", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "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": "value", "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": "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": "_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": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "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": "value", "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": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561000f575f5ffd5b5060405161144838038061144883398101604081905261002e916103f0565b604051806040016040528060068152602001650ccf0c6c2e6d60d31b8152506040518060400160405280600681526020016508cb08682a6960d31b815250816004908161007b91906104b4565b50600561008882826104b4565b50506006805460ff19169055506100ac5f5160206114285f395f51905f525f610151565b6100d05f5160206114085f395f51905f525f5160206114285f395f51905f52610151565b6100f45f5160206113e85f395f51905f525f5160206114285f395f51905f52610151565b61010b5f5160206114285f395f51905f528261019b565b506101235f5160206114085f395f51905f528261019b565b5061013b5f5160206113e85f395f51905f528261019b565b5061014b8164174876e800610244565b5061058d565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1661023b575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556101f33390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161023e565b505f5b92915050565b6001600160a01b0382166102725760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b61027d5f8383610281565b5050565b61028c838383610291565b505050565b6102996102a4565b61028c8383836102ca565b60065460ff16156102c85760405163d93c066560e01b815260040160405180910390fd5b565b6001600160a01b0383166102f4578060035f8282546102e9919061056e565b909155506103649050565b6001600160a01b0383165f90815260016020526040902054818110156103465760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610269565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b0382166103805760038054829003905561039e565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103e391815260200190565b60405180910390a3505050565b5f60208284031215610400575f5ffd5b81516001600160a01b0381168114610416575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061044557607f821691505b60208210810361046357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561028c57805f5260205f20601f840160051c8101602085101561048e5750805b601f840160051c820191505b818110156104ad575f815560010161049a565b5050505050565b81516001600160401b038111156104cd576104cd61041d565b6104e1816104db8454610431565b84610469565b6020601f821160018114610513575f83156104fc5750848201515b5f19600385901b1c1916600184901b1784556104ad565b5f84815260208120601f198516915b828110156105425787850151825560209485019460019092019101610522565b508482101561055f57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8082018082111561023e57634e487b7160e01b5f52601160045260245ffd5b610e4e8061059a5f395ff3fe608060405234801561000f575f5ffd5b50600436106101bb575f3560e01c806370a08231116100f3578063a3f4df7e11610093578063d547741f1161006e578063d547741f146103bd578063dd62ed3e146103d0578063e63ab1e914610408578063f76f8d781461042f575f5ffd5b8063a3f4df7e1461035e578063a9059cbb14610383578063d539139314610396575f5ffd5b80638456cb59116100ce5780638456cb591461033457806391d148541461033c57806395d89b411461034f578063a217fddf14610357575f5ffd5b806370a08231146102d257806375b238fc146102fa57806379cc679014610321575f5ffd5b80632ff2e9dc1161015e5780633f4ba83a116101395780633f4ba83a1461029957806340c10f19146102a157806342966c68146102b45780635c975abb146102c7575f5ffd5b80632ff2e9dc1461026b578063313ce5671461027757806336568abe14610286575f5ffd5b806318160ddd1161019957806318160ddd1461020f57806323b872dd14610221578063248a9ca3146102345780632f2ff15d14610256575f5ffd5b806301ffc9a7146101bf57806306fdde03146101e7578063095ea7b3146101fc575b5f5ffd5b6101d26101cd366004610c5f565b610454565b60405190151581526020015b60405180910390f35b6101ef61048a565b6040516101de9190610c8d565b6101d261020a366004610cdd565b61051a565b6003545b6040519081526020016101de565b6101d261022f366004610d05565b610531565b610213610242366004610d3f565b5f9081526020819052604090206001015490565b610269610264366004610d56565b610554565b005b61021364174876e80081565b604051601281526020016101de565b610269610294366004610d56565b61057e565b6102696105b6565b6102696102af366004610cdd565b6105eb565b6102696102c2366004610d3f565b61061f565b60065460ff166101d2565b6102136102e0366004610d80565b6001600160a01b03165f9081526001602052604090205490565b6102137fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581565b61026961032f366004610cdd565b610628565b610269610636565b6101d261034a366004610d56565b610668565b6101ef610690565b6102135f81565b6101ef604051806040016040528060068152602001650ccf0c6c2e6d60d31b81525081565b6101d2610391366004610cdd565b61069f565b6102137f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102696103cb366004610d56565b6106ac565b6102136103de366004610d99565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6102137f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6101ef6040518060400160405280600681526020016508cb08682a6960d31b81525081565b5f6001600160e01b03198216637965db0b60e01b148061048457506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606004805461049990610dc1565b80601f01602080910402602001604051908101604052809291908181526020018280546104c590610dc1565b80156105105780601f106104e757610100808354040283529160200191610510565b820191905f5260205f20905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b5f336105278185856106d0565b5060019392505050565b5f3361053e8582856106dd565b610549858585610757565b506001949350505050565b5f8281526020819052604090206001015461056e816107b4565b61057883836107be565b50505050565b6001600160a01b03811633146105a75760405163334bd91960e11b815260040160405180910390fd5b6105b1828261084d565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105e0816107b4565b6105e86108b6565b50565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610615816107b4565b6105b18383610908565b6105e88161093c565b6106328282610946565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610660816107b4565b6105e861095b565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60606005805461049990610dc1565b5f33610527818585610757565b5f828152602081905260409020600101546106c6816107b4565b610578838361084d565b6105b18383836001610998565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f198114610578578181101561074957604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61057884848484035f610998565b6001600160a01b03831661078057604051634b637e8f60e11b81525f6004820152602401610740565b6001600160a01b0382166107a95760405163ec442f0560e01b81525f6004820152602401610740565b6105b1838383610a6a565b6105e88133610a75565b5f6107c98383610668565b610846575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556107fe3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610484565b505f610484565b5f6108588383610668565b15610846575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610484565b6108be610aae565b6006805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166109315760405163ec442f0560e01b81525f6004820152602401610740565b6106325f8383610a6a565b6105e83382610ad3565b6109518233836106dd565b6106328282610ad3565b610963610b07565b6006805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108eb3390565b6001600160a01b0384166109c15760405163e602df0560e01b81525f6004820152602401610740565b6001600160a01b0383166109ea57604051634a1406b160e11b81525f6004820152602401610740565b6001600160a01b038085165f908152600260209081526040808320938716835292905220829055801561057857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a5c91815260200190565b60405180910390a350505050565b6105b1838383610b2b565b610a7f8282610668565b6106325760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610740565b60065460ff16610ad157604051638dfc202b60e01b815260040160405180910390fd5b565b6001600160a01b038216610afc57604051634b637e8f60e11b81525f6004820152602401610740565b610632825f83610a6a565b60065460ff1615610ad15760405163d93c066560e01b815260040160405180910390fd5b610b33610b07565b6105b18383836001600160a01b038316610b63578060035f828254610b589190610df9565b90915550610bd39050565b6001600160a01b0383165f9081526001602052604090205481811015610bb55760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610740565b6001600160a01b0384165f9081526001602052604090209082900390555b6001600160a01b038216610bef57600380548290039055610c0d565b6001600160a01b0382165f9081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c5291815260200190565b60405180910390a3505050565b5f60208284031215610c6f575f5ffd5b81356001600160e01b031981168114610c86575f5ffd5b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610cd8575f5ffd5b919050565b5f5f60408385031215610cee575f5ffd5b610cf783610cc2565b946020939093013593505050565b5f5f5f60608486031215610d17575f5ffd5b610d2084610cc2565b9250610d2e60208501610cc2565b929592945050506040919091013590565b5f60208284031215610d4f575f5ffd5b5035919050565b5f5f60408385031215610d67575f5ffd5b82359150610d7760208401610cc2565b90509250929050565b5f60208284031215610d90575f5ffd5b610c8682610cc2565b5f5f60408385031215610daa575f5ffd5b610db383610cc2565b9150610d7760208401610cc2565b600181811c90821680610dd557607f821691505b602082108103610df357634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561048457634e487b7160e01b5f52601160045260245ffdfea2646970667358221220237430af730f135d5b1ef61f985e8e4b7641e9a4b8b384b610ba25d5a9891b3764736f6c634300081b003365d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266