[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" }, { "internalType": "uint256", "name": "amount_", "type": "uint256" } ], "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" }, { "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": [], "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" } ]
608060405234801561000f575f80fd5b50604051611b9c380380611b9c833981810160405281019061003191906105c3565b838381600390816100429190610863565b5080600490816100529190610863565b5050506100716100666100a560201b60201c565b6100ac60201b60201c565b81600560146101000a81548160ff021916908360ff16021790555061009c338261016f60201b60201c565b50505050610a47565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101df575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016101d69190610971565b60405180910390fd5b6101f05f83836101f460201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610244578060025f82825461023891906109b7565b92505081905550610312565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156102cd578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016102c4939291906109f9565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610359578060025f82825403925050819055506103a3565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104009190610a2e565b60405180910390a3505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61046c82610426565b810181811067ffffffffffffffff8211171561048b5761048a610436565b5b80604052505050565b5f61049d61040d565b90506104a98282610463565b919050565b5f67ffffffffffffffff8211156104c8576104c7610436565b5b6104d182610426565b9050602081019050919050565b8281835e5f83830152505050565b5f6104fe6104f9846104ae565b610494565b90508281526020810184848401111561051a57610519610422565b5b6105258482856104de565b509392505050565b5f82601f8301126105415761054061041e565b5b81516105518482602086016104ec565b91505092915050565b5f60ff82169050919050565b61056f8161055a565b8114610579575f80fd5b50565b5f8151905061058a81610566565b92915050565b5f819050919050565b6105a281610590565b81146105ac575f80fd5b50565b5f815190506105bd81610599565b92915050565b5f805f80608085870312156105db576105da610416565b5b5f85015167ffffffffffffffff8111156105f8576105f761041a565b5b6106048782880161052d565b945050602085015167ffffffffffffffff8111156106255761062461041a565b5b6106318782880161052d565b93505060406106428782880161057c565b9250506060610653878288016105af565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806106ad57607f821691505b6020821081036106c0576106bf610669565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106e7565b61072c86836106e7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61076761076261075d84610590565b610744565b610590565b9050919050565b5f819050919050565b6107808361074d565b61079461078c8261076e565b8484546106f3565b825550505050565b5f90565b6107a861079c565b6107b3818484610777565b505050565b5b818110156107d6576107cb5f826107a0565b6001810190506107b9565b5050565b601f82111561081b576107ec816106c6565b6107f5846106d8565b81016020851015610804578190505b610818610810856106d8565b8301826107b8565b50505b505050565b5f82821c905092915050565b5f61083b5f1984600802610820565b1980831691505092915050565b5f610853838361082c565b9150826002028217905092915050565b61086c8261065f565b67ffffffffffffffff81111561088557610884610436565b5b61088f8254610696565b61089a8282856107da565b5f60209050601f8311600181146108cb575f84156108b9578287015190505b6108c38582610848565b86555061092a565b601f1984166108d9866106c6565b5f5b82811015610900578489015182556001820191506020850194506020810190506108db565b8683101561091d5784890151610919601f89168261082c565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61095b82610932565b9050919050565b61096b81610951565b82525050565b5f6020820190506109845f830184610962565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6109c182610590565b91506109cc83610590565b92508282019050808211156109e4576109e361098a565b5b92915050565b6109f381610590565b82525050565b5f606082019050610a0c5f830186610962565b610a1960208301856109ea565b610a2660408301846109ea565b949350505050565b5f602082019050610a415f8301846109ea565b92915050565b61114880610a545f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c8063715018a61161006f578063715018a6146101a05780638da5cb5b146101aa57806395d89b41146101c8578063a9059cbb146101e6578063dd62ed3e14610216578063f2fde38b14610246576100b2565b806306fdde03146100b6578063095ea7b3146100d457806318160ddd1461010457806323b872dd14610122578063313ce5671461015257806370a0823114610170575b5f80fd5b6100be610262565b6040516100cb9190610ccb565b60405180910390f35b6100ee60048036038101906100e99190610d7c565b6102f2565b6040516100fb9190610dd4565b60405180910390f35b61010c610314565b6040516101199190610dfc565b60405180910390f35b61013c60048036038101906101379190610e15565b61031d565b6040516101499190610dd4565b60405180910390f35b61015a61034b565b6040516101679190610e80565b60405180910390f35b61018a60048036038101906101859190610e99565b610361565b6040516101979190610dfc565b60405180910390f35b6101a86103a6565b005b6101b26103b9565b6040516101bf9190610ed3565b60405180910390f35b6101d06103e1565b6040516101dd9190610ccb565b60405180910390f35b61020060048036038101906101fb9190610d7c565b610471565b60405161020d9190610dd4565b60405180910390f35b610230600480360381019061022b9190610eec565b610493565b60405161023d9190610dfc565b60405180910390f35b610260600480360381019061025b9190610e99565b610515565b005b60606003805461027190610f57565b80601f016020809104026020016040519081016040528092919081815260200182805461029d90610f57565b80156102e85780601f106102bf576101008083540402835291602001916102e8565b820191905f5260205f20905b8154815290600101906020018083116102cb57829003601f168201915b5050505050905090565b5f806102fc610597565b905061030981858561059e565b600191505092915050565b5f600254905090565b5f80610327610597565b90506103348582856105b0565b61033f858585610642565b60019150509392505050565b5f600560149054906101000a900460ff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6103ae610732565b6103b75f6107b0565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546103f090610f57565b80601f016020809104026020016040519081016040528092919081815260200182805461041c90610f57565b80156104675780601f1061043e57610100808354040283529160200191610467565b820191905f5260205f20905b81548152906001019060200180831161044a57829003601f168201915b5050505050905090565b5f8061047b610597565b9050610488818585610642565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61051d610732565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361058b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058290610ff7565b60405180910390fd5b610594816107b0565b50565b5f33905090565b6105ab8383836001610873565b505050565b5f6105bb8484610493565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461063c578181101561062d578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161062493929190611015565b60405180910390fd5b61063b84848484035f610873565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106b2575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106a99190610ed3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610722575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107199190610ed3565b60405180910390fd5b61072d838383610a42565b505050565b61073a610597565b73ffffffffffffffffffffffffffffffffffffffff166107586103b9565b73ffffffffffffffffffffffffffffffffffffffff16146107ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a590611094565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036108e3575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016108da9190610ed3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610953575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161094a9190610ed3565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610a3c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a339190610dfc565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a92578060025f828254610a8691906110df565b92505081905550610b60565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610b1b578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610b1293929190611015565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ba7578060025f8282540392505081905550610bf1565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c4e9190610dfc565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610c9d82610c5b565b610ca78185610c65565b9350610cb7818560208601610c75565b610cc081610c83565b840191505092915050565b5f6020820190508181035f830152610ce38184610c93565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d1882610cef565b9050919050565b610d2881610d0e565b8114610d32575f80fd5b50565b5f81359050610d4381610d1f565b92915050565b5f819050919050565b610d5b81610d49565b8114610d65575f80fd5b50565b5f81359050610d7681610d52565b92915050565b5f8060408385031215610d9257610d91610ceb565b5b5f610d9f85828601610d35565b9250506020610db085828601610d68565b9150509250929050565b5f8115159050919050565b610dce81610dba565b82525050565b5f602082019050610de75f830184610dc5565b92915050565b610df681610d49565b82525050565b5f602082019050610e0f5f830184610ded565b92915050565b5f805f60608486031215610e2c57610e2b610ceb565b5b5f610e3986828701610d35565b9350506020610e4a86828701610d35565b9250506040610e5b86828701610d68565b9150509250925092565b5f60ff82169050919050565b610e7a81610e65565b82525050565b5f602082019050610e935f830184610e71565b92915050565b5f60208284031215610eae57610ead610ceb565b5b5f610ebb84828501610d35565b91505092915050565b610ecd81610d0e565b82525050565b5f602082019050610ee65f830184610ec4565b92915050565b5f8060408385031215610f0257610f01610ceb565b5b5f610f0f85828601610d35565b9250506020610f2085828601610d35565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610f6e57607f821691505b602082108103610f8157610f80610f2a565b5b50919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f610fe1602683610c65565b9150610fec82610f87565b604082019050919050565b5f6020820190508181035f83015261100e81610fd5565b9050919050565b5f6060820190506110285f830186610ec4565b6110356020830185610ded565b6110426040830184610ded565b949350505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61107e602083610c65565b91506110898261104a565b602082019050919050565b5f6020820190508181035f8301526110ab81611072565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6110e982610d49565b91506110f483610d49565b925082820190508082111561110c5761110b6110b2565b5b9291505056fea264697066735822122054fc07c028d1ca2bbaf36aea1c1a3a3ae47e8083b054e97308e6dbc34bfa7eee64736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000052b7d2dcc80cd2e40000000000000000000000000000000000000000000000000000000000000000000006574f4f46494500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006574f4f4649450000000000000000000000000000000000000000000000000000