[ { "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": "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": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": "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": [], "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": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "_recipient", "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": [], "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060405180604001604052806008815260200167082d8c6d0cadad2f60c31b815250604051806040016040528060048152602001630829886b60e31b81525081600490805190602001906200006892919062000275565b5080516200007e90600590602084019062000275565b50506006805460ff1916601217905550620000a9600080516020620019a5833981519152336200010f565b620000c460008051602062001985833981519152336200010f565b620000ee60008051602062001985833981519152600080516020620019a58339815191526200011f565b62000109600080516020620019a5833981519152806200011f565b62000311565b6200011b828262000171565b5050565b600082815260208190526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a460009182526020829052604090912060020155565b60008281526020818152604090912062000196918390620008bc620001ea821b17901c565b156200011b57620001a66200020a565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000201836001600160a01b0384166200020e565b90505b92915050565b3390565b60006200021c83836200025d565b620002545750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000204565b50600062000204565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002b857805160ff1916838001178555620002e8565b82800160010185558215620002e8579182015b82811115620002e8578251825591602001919060010190620002cb565b50620002f6929150620002fa565b5090565b5b80821115620002f65760008155600101620002fb565b61166480620003216000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806375b238fc116100d8578063a457c2d71161008c578063d539139311610066578063d5391393146102fa578063d547741f14610302578063dd62ed3e1461031557610182565b8063a457c2d7146102c1578063a9059cbb146102d4578063ca15c873146102e757610182565b806391d14854116100bd57806391d148541461029e57806395d89b41146102b1578063a217fddf146102b957610182565b806375b238fc146102765780639010d07c1461027e57610182565b80632f2ff15d1161013a5780633950935111610114578063395093511461023d57806340c10f191461025057806370a082311461026357610182565b80632f2ff15d14610200578063313ce5671461021557806336568abe1461022a57610182565b806318160ddd1161016b57806318160ddd146101c557806323b872dd146101da578063248a9ca3146101ed57610182565b806306fdde0314610187578063095ea7b3146101a5575b600080fd5b61018f610328565b60405161019c919061118a565b60405180910390f35b6101b86101b33660046110c3565b6103dc565b60405161019c9190611176565b6101cd6103fa565b60405161019c9190611181565b6101b86101e8366004611083565b610400565b6101cd6101fb3660046110ed565b6104a1565b61021361020e366004611105565b6104b6565b005b61021d610521565b60405161019c9190611588565b610213610238366004611105565b61052a565b6101b861024b3660046110c3565b6105a0565b61021361025e3660046110c3565b6105fb565b6101cd610271366004611034565b610665565b6101cd61068d565b61029161028c366004611134565b6106b1565b60405161019c9190611155565b6101b86102ac366004611105565b6106d0565b61018f6106e8565b6101cd610767565b6101b86102cf3660046110c3565b61076c565b6101b86102e23660046110c3565b6107e1565b6101cd6102f53660046110ed565b6107f5565b6101cd61080c565b610213610310366004611105565b610830565b6101cd61032336600461104f565b610884565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103d25780601f106103a7576101008083540402835291602001916103d2565b820191906000526020600020905b8154815290600101906020018083116103b557829003601f168201915b5050505050905090565b60006103f06103e96108de565b84846108e2565b5060015b92915050565b60035490565b600061040d8484846109f1565b610497846104196108de565b610492856040518060600160405280602881526020016115e26028913973ffffffffffffffffffffffffffffffffffffffff8a166000908152600260205260408120906104646108de565b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020549190610b7b565b6108e2565b5060019392505050565b60009081526020819052604090206002015490565b6000828152602081905260409020600201546104d4906102ac6108de565b610513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a906112b5565b60405180910390fd5b61051d8282610bc1565b5050565b60065460ff1690565b6105326108de565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a906114f4565b61051d8282610c44565b60006103f06105ad6108de565b8461049285600260006105be6108de565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c168152925290205490610cc7565b6106257ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc9336106d0565b61065b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90611403565b61051d8282610d06565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4281565b60008281526020819052604081206106c99083610e07565b9392505050565b60008281526020819052604081206106c99083610e13565b60058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103d25780601f106103a7576101008083540402835291602001916103d2565b600081565b60006103f06107796108de565b846104928560405180606001604052806025815260200161160a60259139600260006107a36108de565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d16815292529020549190610b7b565b60006103f06107ee6108de565b84846109f1565b60008181526020819052604081206103f490610e35565b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b60008281526020819052604090206002015461084e906102ac6108de565b610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a906113a6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260026020908152604080832093909416825291909152205490565b60006106c98373ffffffffffffffffffffffffffffffffffffffff8416610e40565b3390565b73ffffffffffffffffffffffffffffffffffffffff831661092f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90611497565b73ffffffffffffffffffffffffffffffffffffffff821661097c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90611312565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109e4908590611181565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a9061143a565b73ffffffffffffffffffffffffffffffffffffffff8216610a8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90611258565b610a96838383610e8a565b610ae0816040518060600160405280602681526020016115bc6026913973ffffffffffffffffffffffffffffffffffffffff86166000908152600160205260409020549190610b7b565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054610b1c9082610cc7565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109e4908590611181565b60008184841115610bb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a919061118a565b505050900390565b6000828152602081905260409020610bd990826108bc565b1561051d57610be66108de565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020610c5c9082610e8f565b1561051d57610c696108de565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000828201838110156106c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a9061136f565b73ffffffffffffffffffffffffffffffffffffffff8216610d53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90611551565b610d5f60008383610e8a565b600354610d6c9082610cc7565b60035573ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054610d9f9082610cc7565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dfb908590611181565b60405180910390a35050565b60006106c98383610eb1565b60006106c98373ffffffffffffffffffffffffffffffffffffffff8416610f10565b60006103f482610f28565b6000610e4c8383610f10565b610e82575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556103f4565b5060006103f4565b505050565b60006106c98373ffffffffffffffffffffffffffffffffffffffff8416610f2c565b81546000908210610eee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a906111fb565b826000018281548110610efd57fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b600081815260018301602052604081205480156110065783547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8083019190810190600090879083908110610f7d57fe5b9060005260206000200154905080876000018481548110610f9a57fe5b600091825260208083209091019290925582815260018981019092526040902090840190558654879080610fca57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506103f4565b60009150506103f4565b803573ffffffffffffffffffffffffffffffffffffffff811681146103f457600080fd5b600060208284031215611045578081fd5b6106c98383611010565b60008060408385031215611061578081fd5b61106b8484611010565b915061107a8460208501611010565b90509250929050565b600080600060608486031215611097578081fd5b83356110a281611596565b925060208401356110b281611596565b929592945050506040919091013590565b600080604083850312156110d5578182fd5b6110df8484611010565b946020939093013593505050565b6000602082840312156110fe578081fd5b5035919050565b60008060408385031215611117578182fd5b82359150602083013561112981611596565b809150509250929050565b60008060408385031215611146578182fd5b50508035926020909101359150565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b90815260200190565b6000602080835283518082850152825b818110156111b65785810183015185820160400152820161119a565b818111156111c75783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60408201527f6473000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201527f2061646d696e20746f206772616e740000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201527f2061646d696e20746f207265766f6b6500000000000000000000000000000000606082015260800190565b6020808252601a908201527f416c6368656d6978546f6b656e3a206f6e6c79206d696e746572000000000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201527f20726f6c657320666f722073656c660000000000000000000000000000000000606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60ff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff811681146115b857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208646674af1a7bbec9986f703e131fddb51d5d835781c2b632f019935f0542e8b64736f6c634300060c0033f0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc9df8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42