[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint256", "name": "value_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "currentAllowance", "type": "uint256" }, { "internalType": "uint256", "name": "requestedDecrease", "type": "uint256" } ], "name": "ERC20FailedDecreaseAllowance", "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": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "requestedDecrease", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": [], "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "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" } ]
60806040523480156200001157600080fd5b5060405162000e3738038062000e37833981016040819052620000349162000333565b33620000408162000074565b5060046200004f848262000435565b5060056200005e838262000435565b506200006b3382620000c4565b50505062000529565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620001135760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b2103932b1b2b4bb32b960811b60448201526064015b60405180910390fd5b620001216000838362000125565b5050565b6001600160a01b0383166200015457806003600082825462000148919062000501565b90915550620001de9050565b6001600160a01b03831660009081526001602052604090205481811015620001bf5760405162461bcd60e51b815260206004820152601460248201527f696e73756666696369656e742062616c616e636500000000000000000000000060448201526064016200010a565b6001600160a01b03841660009081526001602052604090209082900390555b6001600160a01b038216620001fc576003805482900390556200021b565b6001600160a01b03821660009081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200026191815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200029657600080fd5b81516001600160401b0380821115620002b357620002b36200026e565b604051601f8301601f19908116603f01168101908282118183101715620002de57620002de6200026e565b81604052838152602092508683858801011115620002fb57600080fd5b600091505b838210156200031f578582018301518183018401529082019062000300565b600093810190920192909252949350505050565b6000806000606084860312156200034957600080fd5b83516001600160401b03808211156200036157600080fd5b6200036f8783880162000284565b945060208601519150808211156200038657600080fd5b50620003958682870162000284565b925050604084015190509250925092565b600181811c90821680620003bb57607f821691505b602082108103620003dc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200043057600081815260208120601f850160051c810160208610156200040b5750805b601f850160051c820191505b818110156200042c5782815560010162000417565b5050505b505050565b81516001600160401b038111156200045157620004516200026e565b6200046981620004628454620003a6565b84620003e2565b602080601f831160018114620004a15760008415620004885750858301515b600019600386901b1c1916600185901b1785556200042c565b600085815260208120601f198616915b82811015620004d257888601518255948401946001909101908401620004b1565b5085821015620004f15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200052357634e487b7160e01b600052601160045260246000fd5b92915050565b6108fe80620005396000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063395093511161008c57806395d89b411161006657806395d89b41146101b5578063a457c2d7146101bd578063a9059cbb146101d0578063dd62ed3e146101e357600080fd5b8063395093511461015e57806370a08231146101715780638da5cb5b1461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806338bf3cfa14610149575b600080fd5b6100dc6101f6565b6040516100e99190610748565b60405180910390f35b6101056101003660046107b2565b610288565b60405190151581526020016100e9565b6003545b6040519081526020016100e9565b6101056101353660046107dc565b6102a2565b604051601281526020016100e9565b61015c610157366004610818565b6102c6565b005b61010561016c3660046107b2565b6102e8565b61011961017f366004610818565b6001600160a01b031660009081526001602052604090205490565b6000546040516001600160a01b0390911681526020016100e9565b6100dc61030a565b6101056101cb3660046107b2565b610319565b6101056101de3660046107b2565b610375565b6101196101f136600461083a565b610383565b6060600480546102059061086d565b80601f01602080910402602001604051908101604052809291908181526020018280546102319061086d565b801561027e5780601f106102535761010080835404028352916020019161027e565b820191906000526020600020905b81548152906001019060200180831161026157829003601f168201915b5050505050905090565b6000336102968185856103ae565b60019150505b92915050565b6000336102b08582856103c0565b6102bb858585610435565b506001949350505050565b6102ce6104d0565b6001600160a01b0316600090815260016020526040812055565b6000336102968185856102fb8383610383565b61030591906108a7565b6103ae565b6060600580546102059061086d565b600033816103278286610383565b90508381101561036857604051632983c0c360e21b81526001600160a01b038616600482015260248101829052604481018590526064015b60405180910390fd5b6102bb82868684036103ae565b600033610296818585610435565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6103bb83838360016104ff565b505050565b60006103cc8484610383565b9050600019811461042f57818110156104205760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420616c6c6f77616e636560501b604482015260640161035f565b61042f848484840360006104ff565b50505050565b6001600160a01b03831661047c5760405162461bcd60e51b815260206004820152600e60248201526d34b73b30b634b21039b2b73232b960911b604482015260640161035f565b6001600160a01b0382166104c55760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b2103932b1b2b4bb32b960811b604482015260640161035f565b6103bb838383610611565b6000546001600160a01b031633146104fd5760405163118cdaa760e01b815233600482015260240161035f565b565b6001600160a01b0384166105485760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b21030b8383937bb32b960811b604482015260640161035f565b6001600160a01b0383166105905760405162461bcd60e51b815260206004820152600f60248201526e34b73b30b634b21039b832b73232b960891b604482015260640161035f565b6001600160a01b038085166000908152600260209081526040808320938716835292905220829055801561042f57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060391815260200190565b60405180910390a350505050565b6001600160a01b03831661063c57806003600082825461063191906108a7565b909155506106bb9050565b6001600160a01b0383166000908152600160205260409020548181101561069c5760405162461bcd60e51b8152602060048201526014602482015273696e73756666696369656e742062616c616e636560601b604482015260640161035f565b6001600160a01b03841660009081526001602052604090209082900390555b6001600160a01b0382166106d7576003805482900390556106f6565b6001600160a01b03821660009081526001602052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161073b91815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561077557858101830151858201604001528201610759565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107ad57600080fd5b919050565b600080604083850312156107c557600080fd5b6107ce83610796565b946020939093013593505050565b6000806000606084860312156107f157600080fd5b6107fa84610796565b925061080860208501610796565b9150604084013590509250925092565b60006020828403121561082a57600080fd5b61083382610796565b9392505050565b6000806040838503121561084d57600080fd5b61085683610796565b915061086460208401610796565b90509250929050565b600181811c9082168061088157607f821691505b6020821081036108a157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561029c57634e487b7160e01b600052601160045260246000fdfea26469706673582212206e7199ef05aba3e4d8109ff70681f72441c7ca018688ade7e3c6e495f5a44ce464736f6c63430008110033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000022b5baaf3cc1c18e44300000000000000000000000000000000000000000000000000000000000000000000000450756d7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000450554d5000000000000000000000000000000000000000000000000000000000