[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "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" }, { "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": "BURNER_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": "account", "type": "address" } ], "name": "addBurner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "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": "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": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeBurner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeMinter", "outputs": [], "stateMutability": "nonpayable", "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" } ]
60806040523461032e5761163f8038038061001981610332565b92833981019060408183031261032e5780516001600160401b03811161032e5782610045918301610357565b60208201519092906001600160401b03811161032e576100659201610357565b81516001600160401b03811161024157600354600181811c91168015610324575b602082101461022357601f81116102c1575b50602092601f821160011461026057928192935f92610255575b50508160011b915f199060031b1c1916176003555b80516001600160401b03811161024157600454600181811c91168015610237575b602082101461022357601f81116101c0575b50602091601f8211600114610160579181925f92610155575b50508160011b915f199060031b1c1916176004555b610131336103a8565b5061013b3361041e565b50610145336104b1565b50604051611074908161056b8239f35b015190505f80610113565b601f1982169260045f52805f20915f5b8581106101a857508360019510610190575b505050811b01600455610128565b01515f1960f88460031b161c191690555f8080610182565b91926020600181928685015181550194019201610170565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610219575b601f0160051c01905b81811061020e57506100fa565b5f8155600101610201565b90915081906101f8565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100e8565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b2565b601f1982169360035f52805f20915f5b8681106102a95750836001959610610291575b505050811b016003556100c7565b01515f1960f88460031b161c191690555f8080610283565b91926020600181928685015181550194019201610270565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061031a575b601f0160051c01905b81811061030f5750610098565b5f8155600101610302565b90915081906102f9565b90607f1690610086565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761024157604052565b81601f8201121561032e578051906001600160401b03821161024157610386601f8301601f1916602001610332565b928284526020838301011161032e57815f9260208093018386015e8301015290565b6001600160a01b0381165f9081525f8051602061161f833981519152602052604090205460ff16610419576001600160a01b03165f8181525f8051602061161f83398151915260205260408120805460ff191660011790553391905f805160206115df8339815191528180a4600190565b505f90565b6001600160a01b0381165f9081525f805160206115ff833981519152602052604090205460ff16610419576001600160a01b03165f8181525f805160206115ff83398151915260205260408120805460ff191660011790553391907f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6905f805160206115df8339815191529080a4600190565b6001600160a01b0381165f9081527f847f481f687befb06ed3511f1a8dcef57e83007c0147ae5047583d7056170937602052604090205460ff16610419576001600160a01b03165f8181527f847f481f687befb06ed3511f1a8dcef57e83007c0147ae5047583d705617093760205260408120805460ff191660011790553391907f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848905f805160206115df8339815191529080a460019056fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610a98575080630284685814610a2f57806306fdde031461095d578063095ea7b3146108db57806318160ddd146108be57806323b872dd146107df578063248a9ca3146107ac578063282c51f3146107855780632f2ff15d146107475780633092afd5146106de578063313ce567146106c357806336568abe1461067f57806340c10f191461059357806370a082311461055c57806391d148541461051357806395d89b41146103f8578063983b2d561461038f5780639dc29fac14610298578063a217fddf1461027e578063a9059cbb1461024d578063d539139314610226578063d547741f146101e8578063dd62ed3e146101985763f44637ba14610124575f80fd5b3461019457602036600319011261019457610192610140610aeb565b610148610b41565b5f80516020610fdf8339815191525f5260056020527f847f481f687befb06ed3511f1a8dcef57e83007c0147ae5047583d70561709385461018d90610b90565b610b90565b610cf9565b005b5f80fd5b34610194576040366003190112610194576101b1610aeb565b6101b9610b01565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461019457604036600319011261019457610192600435610207610b01565b90610221610188825f526005602052600160405f20015490565b610f3a565b34610194575f3660031901126101945760206040515f8051602061101f8339815191528152f35b3461019457604036600319011261019457610273610269610aeb565b6024359033610bca565b602060405160018152f35b34610194575f3660031901126101945760206040515f8152f35b34610194576040366003190112610194576102b1610aeb565b335f9081525f80516020610fff8339815191526020526040902054602435919060ff161561036b576001600160a01b0316801561035857805f525f60205260405f205482811061033f576020835f947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587528684520360408620558060025403600255604051908152a3005b9063391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b63e2517d3f60e01b5f52336004525f80516020610fdf83398151915260245260445ffd5b34610194576020366003190112610194576101926103ab610aeb565b6103b3610b41565b5f8051602061101f8339815191525f5260056020527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a523546103f390610b90565b610c61565b34610194575f366003190112610194576040515f6004548060011c90600181168015610509575b6020831081146104f5578285529081156104d95750600114610484575b50819003601f01601f191681019067ffffffffffffffff8211818310176104705761046c82918260405282610b17565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106104c35750602091508201018261043c565b60018160209254838588010152019101906104ae565b90506020925060ff191682840152151560051b8201018261043c565b634e487b7160e01b5f52602260045260245ffd5b91607f169161041f565b346101945760403660031901126101945761052c610b01565b6004355f52600560205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610194576020366003190112610194576001600160a01b0361057d610aeb565b165f525f602052602060405f2054604051908152f35b34610194576040366003190112610194576105ac610aeb565b335f9081525f80516020610fbf8339815191526020526040902054602435919060ff161561065b576001600160a01b031690811561064857600254908082018092116106345760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b63e2517d3f60e01b5f52336004525f8051602061101f83398151915260245260445ffd5b3461019457604036600319011261019457610698610b01565b336001600160a01b038216036106b45761019290600435610f3a565b63334bd91960e11b5f5260045ffd5b34610194575f36600319011261019457602060405160128152f35b34610194576020366003190112610194576101926106fa610aeb565b610702610b41565b5f8051602061101f8339815191525f5260056020527f15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a5235461074290610b90565b610ea9565b3461019457604036600319011261019457610192600435610766610b01565b90610780610188825f526005602052600160405f20015490565b610d8c565b34610194575f3660031901126101945760206040515f80516020610fdf8339815191528152f35b346101945760203660031901126101945760206107d76004355f526005602052600160405f20015490565b604051908152f35b34610194576060366003190112610194576107f8610aeb565b610800610b01565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f19811061083e575b506102739350610bca565b8381106108a357841561089057331561087d57610273945f52600160205260405f2060018060a01b0333165f526020528360405f209103905584610833565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b34610194575f366003190112610194576020600254604051908152f35b34610194576040366003190112610194576108f4610aeb565b602435903315610890576001600160a01b031690811561087d57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610194575f366003190112610194576040515f6003548060011c90600181168015610a25575b6020831081146104f5578285529081156104d957506001146109d05750819003601f01601f191681019067ffffffffffffffff8211818310176104705761046c82918260405282610b17565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b828210610a0f5750602091508201018261043c565b60018160209254838588010152019101906109fa565b91607f1691610984565b3461019457602036600319011261019457610192610a4b610aeb565b610a53610b41565b5f80516020610fdf8339815191525f5260056020527f847f481f687befb06ed3511f1a8dcef57e83007c0147ae5047583d705617093854610a9390610b90565b610e18565b34610194576020366003190112610194576004359063ffffffff60e01b821680920361019457602091637965db0b60e01b8114908115610ada575b5015158152f35b6301ffc9a760e01b14905083610ad3565b600435906001600160a01b038216820361019457565b602435906001600160a01b038216820361019457565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b335f9081527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604090205460ff1615610b7957565b63e2517d3f60e01b5f52336004525f60245260445ffd5b5f81815260056020908152604080832033845290915290205460ff1615610bb45750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0316908115610358576001600160a01b031691821561064857815f525f60205260405f2054818110610c4857817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b6001600160a01b0381165f9081525f80516020610fbf833981519152602052604090205460ff16610cf4576001600160a01b03165f8181525f80516020610fbf83398151915260205260408120805460ff191660011790553391905f8051602061101f833981519152907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b505f90565b6001600160a01b0381165f9081525f80516020610fff833981519152602052604090205460ff16610cf4576001600160a01b03165f8181525f80516020610fff83398151915260205260408120805460ff191660011790553391905f80516020610fdf833981519152907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b5f8181526005602090815260408083206001600160a01b038616845290915290205460ff16610e12575f8181526005602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b6001600160a01b0381165f9081525f80516020610fff833981519152602052604090205460ff1615610cf4576001600160a01b03165f8181525f80516020610fff83398151915260205260408120805460ff191690553391905f80516020610fdf833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b6001600160a01b0381165f9081525f80516020610fbf833981519152602052604090205460ff1615610cf4576001600160a01b03165f8181525f80516020610fbf83398151915260205260408120805460ff191690553391905f8051602061101f833981519152907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b5f8181526005602090815260408083206001600160a01b038616845290915290205460ff1615610e12575f8181526005602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a460019056fe15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a5223c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848847f481f687befb06ed3511f1a8dcef57e83007c0147ae5047583d70561709379f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a2646970667358221220b92616dc76dc27bb9df78293bc8d48d54333534556e57f56f3f8c048a79f27de64736f6c634300081a00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d15a28d26fa1bf736cf7edc9922607171ccb09c3c73b808e7772a3013e068a52205b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000014436f726b20436f6d7065746974696f6e2055534400000000000000000000000000000000000000000000000000000000000000000000000000000000000000046355534400000000000000000000000000000000000000000000000000000000