[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "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": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "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": "owner", "type": "address" } ], "name": "initialize", "outputs": [], "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": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "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": "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": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b50336040518060400160405280600a81526020017f535549204167656e7473000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5355494149000000000000000000000000000000000000000000000000000000815250816003908161008d919061043d565b50806004908161009d919061043d565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101125760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101099190610550565b60405180910390fd5b6101218161012760201b60201c565b5061056b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061026e57607f821691505b60208210810361028157610280610227565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026102e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102ac565b6102f386836102ac565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061033a6103356103308461030b565b610315565b61030b565b9050919050565b6000819050919050565b6103548361031f565b61036861036082610341565b8484546102b9565b825550505050565b600090565b61037d610370565b61038881848461034b565b505050565b5b818110156103ac576103a1600082610375565b60018101905061038e565b5050565b601f8211156103f1576103c281610287565b6103cb8461029c565b810160208510156103da578190505b6103ee6103e68561029c565b83018261038d565b50505b505050565b600082821c905092915050565b6000610414600019846008026103f6565b1980831691505092915050565b600061042d8383610403565b9150826002028217905092915050565b610446826101ed565b67ffffffffffffffff81111561045f5761045e6101f8565b5b6104698254610256565b6104748282856103b0565b600060209050601f8311600181146104a75760008415610495578287015190505b61049f8582610421565b865550610507565b601f1984166104b586610287565b60005b828110156104dd578489015182556001820191506020850194506020810190506104b8565b868310156104fa57848901516104f6601f891682610403565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061053a8261050f565b9050919050565b61054a8161052f565b82525050565b60006020820190506105656000830184610541565b92915050565b6113e58061057a6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb14610289578063c4d66de8146102b9578063dd62ed3e146102d5578063f2fde38b1461030557610100565b8063715018a61461022757806379cc6790146102315780638da5cb5b1461024d57806395d89b411461026b57610100565b8063313ce567116100d3578063313ce567146101a157806340c10f19146101bf57806342966c68146101db57806370a08231146101f757610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d610321565b60405161011a9190610fa0565b60405180910390f35b61013d6004803603810190610138919061105b565b6103b3565b60405161014a91906110b6565b60405180910390f35b61015b6103d6565b60405161016891906110e0565b60405180910390f35b61018b600480360381019061018691906110fb565b6103e0565b60405161019891906110b6565b60405180910390f35b6101a961040f565b6040516101b6919061116a565b60405180910390f35b6101d960048036038101906101d4919061105b565b610418565b005b6101f560048036038101906101f09190611185565b61042e565b005b610211600480360381019061020c91906111b2565b610442565b60405161021e91906110e0565b60405180910390f35b61022f61048a565b005b61024b6004803603810190610246919061105b565b61049e565b005b6102556104be565b60405161026291906111ee565b60405180910390f35b6102736104e8565b6040516102809190610fa0565b60405180910390f35b6102a3600480360381019061029e919061105b565b61057a565b6040516102b091906110b6565b60405180910390f35b6102d360048036038101906102ce91906111b2565b61059d565b005b6102ef60048036038101906102ea9190611209565b610614565b6040516102fc91906110e0565b60405180910390f35b61031f600480360381019061031a91906111b2565b61069b565b005b60606003805461033090611278565b80601f016020809104026020016040519081016040528092919081815260200182805461035c90611278565b80156103a95780601f1061037e576101008083540402835291602001916103a9565b820191906000526020600020905b81548152906001019060200180831161038c57829003601f168201915b5050505050905090565b6000806103be610721565b90506103cb818585610729565b600191505092915050565b6000600254905090565b6000806103eb610721565b90506103f885828561073b565b6104038585856107cf565b60019150509392505050565b60006012905090565b6104206108c3565b61042a828261094a565b5050565b61043f610439610721565b826109cc565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6104926108c3565b61049c6000610a4e565b565b6104b0826104aa610721565b8361073b565b6104ba82826109cc565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546104f790611278565b80601f016020809104026020016040519081016040528092919081815260200182805461052390611278565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b600080610585610721565b90506105928185856107cf565b600191505092915050565b600560149054906101000a900460ff16156105ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e4906112f5565b60405180910390fd5b6105f681610a4e565b6001600560146101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6106a36108c3565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107155760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161070c91906111ee565b60405180910390fd5b61071e81610a4e565b50565b600033905090565b6107368383836001610b14565b505050565b60006107478484610614565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107c957818110156107b9578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107b093929190611315565b60405180910390fd5b6107c884848484036000610b14565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108415760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161083891906111ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b35760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108aa91906111ee565b60405180910390fd5b6108be838383610ceb565b505050565b6108cb610721565b73ffffffffffffffffffffffffffffffffffffffff166108e96104be565b73ffffffffffffffffffffffffffffffffffffffff16146109485761090c610721565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161093f91906111ee565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109bc5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016109b391906111ee565b60405180910390fd5b6109c860008383610ceb565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a3e5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610a3591906111ee565b60405180910390fd5b610a4a82600083610ceb565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b865760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b7d91906111ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bf85760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610bef91906111ee565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610ce5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610cdc91906110e0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3d578060026000828254610d31919061137b565b92505081905550610e10565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610dc9578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610dc093929190611315565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e595780600260008282540392505081905550610ea6565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f0391906110e0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f4a578082015181840152602081019050610f2f565b60008484015250505050565b6000601f19601f8301169050919050565b6000610f7282610f10565b610f7c8185610f1b565b9350610f8c818560208601610f2c565b610f9581610f56565b840191505092915050565b60006020820190508181036000830152610fba8184610f67565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ff282610fc7565b9050919050565b61100281610fe7565b811461100d57600080fd5b50565b60008135905061101f81610ff9565b92915050565b6000819050919050565b61103881611025565b811461104357600080fd5b50565b6000813590506110558161102f565b92915050565b6000806040838503121561107257611071610fc2565b5b600061108085828601611010565b925050602061109185828601611046565b9150509250929050565b60008115159050919050565b6110b08161109b565b82525050565b60006020820190506110cb60008301846110a7565b92915050565b6110da81611025565b82525050565b60006020820190506110f560008301846110d1565b92915050565b60008060006060848603121561111457611113610fc2565b5b600061112286828701611010565b935050602061113386828701611010565b925050604061114486828701611046565b9150509250925092565b600060ff82169050919050565b6111648161114e565b82525050565b600060208201905061117f600083018461115b565b92915050565b60006020828403121561119b5761119a610fc2565b5b60006111a984828501611046565b91505092915050565b6000602082840312156111c8576111c7610fc2565b5b60006111d684828501611010565b91505092915050565b6111e881610fe7565b82525050565b600060208201905061120360008301846111df565b92915050565b600080604083850312156112205761121f610fc2565b5b600061122e85828601611010565b925050602061123f85828601611010565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061129057607f821691505b6020821081036112a3576112a2611249565b5b50919050565b7f436f6e747261637420697320616c726561647920696e697469616c697a656400600082015250565b60006112df601f83610f1b565b91506112ea826112a9565b602082019050919050565b6000602082019050818103600083015261130e816112d2565b9050919050565b600060608201905061132a60008301866111df565b61133760208301856110d1565b61134460408301846110d1565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061138682611025565b915061139183611025565b92508282019050808211156113a9576113a861134c565b5b9291505056fea2646970667358221220ae77dc143fe5c8320fe22c8f6cf6625b4a67d770003af46b3aaaf1a8dc195bdf64736f6c634300081b0033