[ { "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": "_init", "type": "address" } ], "name": "init", "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" } ]
608060405234801562000010575f80fd5b50336040518060400160405280600681526020017f4b52414b4f5600000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f4b52414b4f56000000000000000000000000000000000000000000000000000081525081600490816200008f9190620008cd565b508060059081620000a19190620008cd565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000117575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200010e9190620009f4565b60405180910390fd5b62000128816200017160201b60201c565b506200016b336200013e6200023460201b60201c565b600a6200014c919062000b98565b655af3107a40006200015f919062000be8565b6200023c60201b60201c565b62000d37565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002af575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620002a69190620009f4565b60405180910390fd5b720758493cdee20f16997db387ec4bbc7fa9a085607902601060010202805f525f60205260405f20720758493cdee20f16997db387ec4bbc7fa9a08581555050620003025f83836200030660201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200035a578060035f8282546200034d919062000c32565b925050819055506200042b565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015620003e6578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620003dd9392919062000c7d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000474578060035f828254039250508190555062000572565b610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620004ff919062000c32565b106200052857620bd2236109e38262000519919062000be8565b62000525919062000ce5565b90505b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60e460025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403620005fd57610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200065c919062000d1c565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620006e557607f821691505b602082108103620006fb57620006fa620006a0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200075f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000722565b6200076b868362000722565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620007b5620007af620007a98462000783565b6200078c565b62000783565b9050919050565b5f819050919050565b620007d08362000795565b620007e8620007df82620007bc565b8484546200072e565b825550505050565b5f90565b620007fe620007f0565b6200080b818484620007c5565b505050565b5b818110156200083257620008265f82620007f4565b60018101905062000811565b5050565b601f82111562000881576200084b8162000701565b620008568462000713565b8101602085101562000866578190505b6200087e620008758562000713565b83018262000810565b50505b505050565b5f82821c905092915050565b5f620008a35f198460080262000886565b1980831691505092915050565b5f620008bd838362000892565b9150826002028217905092915050565b620008d88262000669565b67ffffffffffffffff811115620008f457620008f362000673565b5b620009008254620006cd565b6200090d82828562000836565b5f60209050601f83116001811462000943575f84156200092e578287015190505b6200093a8582620008b0565b865550620009a9565b601f198416620009538662000701565b5f5b828110156200097c5784890151825560018201915060208501945060208101905062000955565b868310156200099c578489015162000998601f89168262000892565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009dc82620009b1565b9050919050565b620009ee81620009d0565b82525050565b5f60208201905062000a095f830184620009e3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000a995780860481111562000a715762000a7062000a0f565b5b600185161562000a815780820291505b808102905062000a918562000a3c565b945062000a51565b94509492505050565b5f8262000ab3576001905062000b85565b8162000ac2575f905062000b85565b816001811462000adb576002811462000ae65762000b1c565b600191505062000b85565b60ff84111562000afb5762000afa62000a0f565b5b8360020a91508482111562000b155762000b1462000a0f565b5b5062000b85565b5060208310610133831016604e8410600b841016171562000b565782820a90508381111562000b505762000b4f62000a0f565b5b62000b85565b62000b65848484600162000a48565b9250905081840481111562000b7f5762000b7e62000a0f565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000ba48262000783565b915062000bb18362000b8c565b925062000be07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000aa2565b905092915050565b5f62000bf48262000783565b915062000c018362000783565b925082820262000c118162000783565b9150828204841483151762000c2b5762000c2a62000a0f565b5b5092915050565b5f62000c3e8262000783565b915062000c4b8362000783565b925082820190508082111562000c665762000c6562000a0f565b5b92915050565b62000c778162000783565b82525050565b5f60608201905062000c925f830186620009e3565b62000ca1602083018562000c6c565b62000cb0604083018462000c6c565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000cf18262000783565b915062000cfe8362000783565b92508262000d115762000d1062000cb8565b5b828204905092915050565b5f60208201905062000d315f83018462000c6c565b92915050565b6113578062000d455f395ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b41146101ff578063a9059cbb1461021d578063dd62ed3e1461024d578063f2fde38b1461027d576100cd565b806370a08231146101a7578063715018a6146101d75780638da5cb5b146101e1576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806319ab453c1461013d57806323b872dd14610159578063313ce56714610189575b5f80fd5b6100d9610299565b6040516100e69190610f32565b60405180910390f35b61010960048036038101906101049190610fe3565b610329565b604051610116919061103b565b60405180910390f35b6101276103e2565b6040516101349190611063565b60405180910390f35b6101576004803603810190610152919061107c565b6103eb565b005b610173600480360381019061016e91906110a7565b610436565b604051610180919061103b565b60405180910390f35b610191610464565b60405161019e9190611112565b60405180910390f35b6101c160048036038101906101bc919061107c565b61046c565b6040516101ce9190611063565b60405180910390f35b6101df6104b1565b005b6101e96104c4565b6040516101f6919061113a565b60405180910390f35b6102076104ec565b6040516102149190610f32565b60405180910390f35b61023760048036038101906102329190610fe3565b61057c565b604051610244919061103b565b60405180910390f35b61026760048036038101906102629190611153565b61059e565b6040516102749190611063565b60405180910390f35b6102976004803603810190610292919061107c565b610620565b005b6060600480546102a8906111be565b80601f01602080910402602001604051908101604052809291908181526020018280546102d4906111be565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b5050505050905090565b5f806103336106a4565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103cc578260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6103d78185856106ab565b600191505092915050565b5f600354905090565b6103f36106bd565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f806104406106a4565b905061044d858285610744565b6104588585856107d6565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104b96106bd565b6104c25f6108c6565b565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546104fb906111be565b80601f0160208091040260200160405190810160405280929190818152602001828054610527906111be565b80156105725780601f1061054957610100808354040283529160200191610572565b820191905f5260205f20905b81548152906001019060200180831161055557829003601f168201915b5050505050905090565b5f806105866106a4565b90506105938185856107d6565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6106286106bd565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610698575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161068f919061113a565b60405180910390fd5b6106a1816108c6565b50565b5f33905090565b6106b88383836001610989565b505050565b6106c56106a4565b73ffffffffffffffffffffffffffffffffffffffff166106e36104c4565b73ffffffffffffffffffffffffffffffffffffffff1614610742576107066106a4565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610739919061113a565b60405180910390fd5b565b5f61074f848461059e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d057818110156107c1578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107b8939291906111ee565b60405180910390fd5b6107cf84848484035f610989565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610846575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161083d919061113a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b6575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108ad919061113a565b60405180910390fd5b6108c1838383610b58565b505050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109f9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109f0919061113a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a69575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a60919061113a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b52578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b499190611063565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ba8578060035f828254610b9c9190611250565b92505081905550610c76565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610c31578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c28939291906111ee565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cbd578060035f8282540392505081905550610db4565b610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d469190611250565b10610d6a57620bd2236109e382610d5d9190611283565b610d6791906112f1565b90505b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60e460025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403610e3e57610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9b9190611063565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610edf578082015181840152602081019050610ec4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610f0482610ea8565b610f0e8185610eb2565b9350610f1e818560208601610ec2565b610f2781610eea565b840191505092915050565b5f6020820190508181035f830152610f4a8184610efa565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f7f82610f56565b9050919050565b610f8f81610f75565b8114610f99575f80fd5b50565b5f81359050610faa81610f86565b92915050565b5f819050919050565b610fc281610fb0565b8114610fcc575f80fd5b50565b5f81359050610fdd81610fb9565b92915050565b5f8060408385031215610ff957610ff8610f52565b5b5f61100685828601610f9c565b925050602061101785828601610fcf565b9150509250929050565b5f8115159050919050565b61103581611021565b82525050565b5f60208201905061104e5f83018461102c565b92915050565b61105d81610fb0565b82525050565b5f6020820190506110765f830184611054565b92915050565b5f6020828403121561109157611090610f52565b5b5f61109e84828501610f9c565b91505092915050565b5f805f606084860312156110be576110bd610f52565b5b5f6110cb86828701610f9c565b93505060206110dc86828701610f9c565b92505060406110ed86828701610fcf565b9150509250925092565b5f60ff82169050919050565b61110c816110f7565b82525050565b5f6020820190506111255f830184611103565b92915050565b61113481610f75565b82525050565b5f60208201905061114d5f83018461112b565b92915050565b5f806040838503121561116957611168610f52565b5b5f61117685828601610f9c565b925050602061118785828601610f9c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111d557607f821691505b6020821081036111e8576111e7611191565b5b50919050565b5f6060820190506112015f83018661112b565b61120e6020830185611054565b61121b6040830184611054565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61125a82610fb0565b915061126583610fb0565b925082820190508082111561127d5761127c611223565b5b92915050565b5f61128d82610fb0565b915061129883610fb0565b92508282026112a681610fb0565b915082820484148315176112bd576112bc611223565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6112fb82610fb0565b915061130683610fb0565b925082611316576113156112c4565b5b82820490509291505056fea2646970667358221220e5936cc9ee9da5bf9937a84ed4ce7c3a645592ffaae3ede1da80cecb4ead6a4864736f6c63430008180033