[ { "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": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "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": "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" } ]
60806040523480156200001157600080fd5b50736143e7cd603f94c1096ec4af48f8a630d325fcda6040518060400160405280600681526020016522393ca93ab760d11b8152506040518060400160405280600381526020016244525960e81b8152508160039081620000739190620001bf565b506004620000828282620001bf565b5050506001600160a01b038116620000b457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000bf81620000c6565b506200028b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200014357607f821691505b6020821081036200016457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ba576000816000526020600020601f850160051c81016020861015620001955750805b601f850160051c820191505b81811015620001b657828155600101620001a1565b5050505b505050565b81516001600160401b03811115620001db57620001db62000118565b620001f381620001ec84546200012e565b846200016a565b602080601f8311600181146200022b5760008415620002125750858301515b600019600386901b1c1916600185901b178555620001b6565b600085815260208120601f198616915b828110156200025c578886015182559484019460019091019084016200023b565b50858210156200027b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610b81806200029b6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b41146101d4578063a9059cbb146101dc578063dd62ed3e146101ef578063f2fde38b1461023557600080fd5b806370a082311461016e578063715018a6146101a45780638da5cb5b146101ac57600080fd5b806323b872dd116100bd57806323b872dd14610137578063313ce5671461014a57806340c10f191461015957600080fd5b806306fdde03146100e4578063095ea7b31461010257806318160ddd14610125575b600080fd5b6100ec610248565b6040516100f9919061096d565b60405180910390f35b610115610110366004610a03565b6102da565b60405190151581526020016100f9565b6002545b6040519081526020016100f9565b610115610145366004610a2d565b6102f4565b604051601281526020016100f9565b61016c610167366004610a03565b610318565b005b61012961017c366004610a69565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61016c61032e565b60055460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f9565b6100ec610342565b6101156101ea366004610a03565b610351565b6101296101fd366004610a8b565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b61016c610243366004610a69565b61035f565b60606003805461025790610abe565b80601f016020809104026020016040519081016040528092919081815260200182805461028390610abe565b80156102d05780601f106102a5576101008083540402835291602001916102d0565b820191906000526020600020905b8154815290600101906020018083116102b357829003601f168201915b5050505050905090565b6000336102e88185856103c8565b60019150505b92915050565b6000336103028582856103da565b61030d8585856104a9565b506001949350505050565b610320610554565b61032a82826105a7565b5050565b610336610554565b6103406000610603565b565b60606004805461025790610abe565b6000336102e88185856104a9565b610367610554565b73ffffffffffffffffffffffffffffffffffffffff81166103bc576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6103c581610603565b50565b6103d5838383600161067a565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146104a35781811015610494576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064016103b3565b6104a38484848403600061067a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166104f9576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b73ffffffffffffffffffffffffffffffffffffffff8216610549576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6103d58383836107c2565b60055473ffffffffffffffffffffffffffffffffffffffff163314610340576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016103b3565b73ffffffffffffffffffffffffffffffffffffffff82166105f7576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b61032a600083836107c2565b6005805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff84166106ca576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b73ffffffffffffffffffffffffffffffffffffffff831661071a576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156104a3578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107b491815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff83166107fa5780600260008282546107ef9190610b11565b909155506108ac9050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610880576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103b3565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff82166108d557600280548290039055610901565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161096091815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b8181101561099b5785810183015185820160400152820161097f565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146109fe57600080fd5b919050565b60008060408385031215610a1657600080fd5b610a1f836109da565b946020939093013593505050565b600080600060608486031215610a4257600080fd5b610a4b846109da565b9250610a59602085016109da565b9150604084013590509250925092565b600060208284031215610a7b57600080fd5b610a84826109da565b9392505050565b60008060408385031215610a9e57600080fd5b610aa7836109da565b9150610ab5602084016109da565b90509250929050565b600181811c90821680610ad257607f821691505b602082108103610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808201808211156102ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122001347c351f35ae0547f8c2abb36ac07bccf6e2bcd038ea953e807210b6b9fe5c64736f6c63430008180033