[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "tokenOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "Approval", "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": "tokens", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "_totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenOwner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "remaining", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenOwner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "a", "type": "uint256" }, { "internalType": "uint256", "name": "b", "type": "uint256" } ], "name": "safeAdd", "outputs": [ { "internalType": "uint256", "name": "c", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "a", "type": "uint256" }, { "internalType": "uint256", "name": "b", "type": "uint256" } ], "name": "safeDiv", "outputs": [ { "internalType": "uint256", "name": "c", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "a", "type": "uint256" }, { "internalType": "uint256", "name": "b", "type": "uint256" } ], "name": "safeMul", "outputs": [ { "internalType": "uint256", "name": "c", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "a", "type": "uint256" }, { "internalType": "uint256", "name": "b", "type": "uint256" } ], "name": "safeSub", "outputs": [ { "internalType": "uint256", "name": "c", "type": "uint256" } ], "stateMutability": "pure", "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": "tokens", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b50604080518082019091526011808252702aa9a22196a337bab73232b939a1b7b4b760791b6020909201918252610049916000916100e3565b50604080518082019091526004808252635553444360e01b6020909201918252610075916001916100e3565b506002805460ff19166006179055655af3107a400060038190553360008181526004602052604080822084905551919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916100d69190815260200190565b60405180910390a36101b7565b8280546100ef9061017c565b90600052602060002090601f0160209004810192826101115760008555610157565b82601f1061012a57805160ff1916838001178555610157565b82800160010185558215610157579182015b8281111561015757825182559160200191906001019061013c565b50610163929150610167565b5090565b5b808211156101635760008155600101610168565b600181811c9082168061019057607f821691505b602082108114156101b157634e487b7160e01b600052602260045260246000fd5b50919050565b6107e2806101c66000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395d89b411161008c578063b5931f7c11610066578063b5931f7c146101d8578063d05c78da146101eb578063dd62ed3e146101fe578063e6cb90131461023757600080fd5b806395d89b41146101aa578063a293d1e8146101b2578063a9059cbb146101c557600080fd5b806323b872dd116100c857806323b872dd14610146578063313ce567146101595780633eaaf86b1461017857806370a082311461018157600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f761024a565b60405161010491906105a4565b60405180910390f35b61012061011b366004610615565b6102d8565b6040519015158152602001610104565b610138610345565b604051908152602001610104565b61012061015436600461063f565b610383565b6002546101669060ff1681565b60405160ff9091168152602001610104565b61013860035481565b61013861018f36600461067b565b6001600160a01b031660009081526004602052604090205490565b6100f7610481565b6101386101c0366004610696565b61048e565b6101206101d3366004610615565b6104ae565b6101386101e6366004610696565b610545565b6101386101f9366004610696565b61055d565b61013861020c3660046106b8565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b610138610245366004610696565b610589565b60008054610257906106eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610283906106eb565b80156102d05780601f106102a5576101008083540402835291602001916102d0565b820191906000526020600020905b8154815290600101906020018083116102b357829003601f168201915b505050505081565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103339086815260200190565b60405180910390a35060015b92915050565b600080805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5460035461037e919061073c565b905090565b6001600160a01b0383166000908152600460205260408120546103a6908361048e565b6001600160a01b03851660009081526004602090815260408083209390935560058152828220338352905220546103dd908361048e565b6001600160a01b03808616600090815260056020908152604080832033845282528083209490945591861681526004909152205461041b9083610589565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061046f9086815260200190565b60405180910390a35060019392505050565b60018054610257906106eb565b60008282111561049d57600080fd5b6104a7828461073c565b9392505050565b336000908152600460205260408120546104c8908361048e565b33600090815260046020526040808220929092556001600160a01b038516815220546104f49083610589565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103339086815260200190565b600080821161055357600080fd5b6104a78284610753565b60006105698284610775565b905082158061058057508161057e8483610753565b145b61033f57600080fd5b60006105958284610794565b90508281101561033f57600080fd5b600060208083528351808285015260005b818110156105d1578581018301518582016040015282016105b5565b818111156105e3576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461061057600080fd5b919050565b6000806040838503121561062857600080fd5b610631836105f9565b946020939093013593505050565b60008060006060848603121561065457600080fd5b61065d846105f9565b925061066b602085016105f9565b9150604084013590509250925092565b60006020828403121561068d57600080fd5b6104a7826105f9565b600080604083850312156106a957600080fd5b50508035926020909101359150565b600080604083850312156106cb57600080fd5b6106d4836105f9565b91506106e2602084016105f9565b90509250929050565b600181811c908216806106ff57607f821691505b6020821081141561072057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561074e5761074e610726565b500390565b60008261077057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561078f5761078f610726565b500290565b600082198211156107a7576107a7610726565b50019056fea26469706673582212201b30b9b17185f7cd9aa57419d2337df2b66e5ea1466f4723a99b1e543b1370fd64736f6c634300080a0033