[ { "inputs": [ { "internalType": "uint256", "name": "totalSupply", "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" }, { "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getDecimals", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "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": [], "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" } ]
60806040523480156200001157600080fd5b5060405162001e4138038062001e41833981810160405281019062000037919062000385565b336040518060400160405280600481526020017f48414b41000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f48414b41000000000000000000000000000000000000000000000000000000008152508160039081620000b5919062000627565b508060049081620000c7919062000627565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200013f5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000136919062000753565b60405180910390fd5b62000150816200016960201b60201c565b5062000162816200022f60201b60201c565b5062000808565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6c01431e0fae6d7217caa000000060028190555060025460008062000259620002c460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002c1816806ae31658fd7f8a9b2620002b291906200079f565b600254620002cc60201b60201c565b50565b600033905090565b6000829050806002600301553373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620003389190620007eb565b60405180910390a3505050565b600080fd5b6000819050919050565b6200035f816200034a565b81146200036b57600080fd5b50565b6000815190506200037f8162000354565b92915050565b6000602082840312156200039e576200039d62000345565b5b6000620003ae848285016200036e565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200043957607f821691505b6020821081036200044f576200044e620003f1565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200047a565b620004c586836200047a565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200050862000502620004fc846200034a565b620004dd565b6200034a565b9050919050565b6000819050919050565b6200052483620004e7565b6200053c62000533826200050f565b84845462000487565b825550505050565b600090565b6200055362000544565b6200056081848462000519565b505050565b5b8181101562000588576200057c60008262000549565b60018101905062000566565b5050565b601f821115620005d757620005a18162000455565b620005ac846200046a565b81016020851015620005bc578190505b620005d4620005cb856200046a565b83018262000565565b50505b505050565b600082821c905092915050565b6000620005fc60001984600802620005dc565b1980831691505092915050565b6000620006178383620005e9565b9150826002028217905092915050565b6200063282620003b7565b67ffffffffffffffff8111156200064e576200064d620003c2565b5b6200065a825462000420565b620006678282856200058c565b600060209050601f8311600181146200069f57600084156200068a578287015190505b62000696858262000609565b86555062000706565b601f198416620006af8662000455565b60005b82811015620006d957848901518255600182019150602085019450602081019050620006b2565b86831015620006f95784890151620006f5601f891682620005e9565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200073b826200070e565b9050919050565b6200074d816200072e565b82525050565b60006020820190506200076a600083018462000742565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007ac826200034a565b9150620007b9836200034a565b9250828201905080821115620007d457620007d362000770565b5b92915050565b620007e5816200034a565b82525050565b6000602082019050620008026000830184620007da565b92915050565b61162980620008186000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063715018a611610097578063a9059cbb11610066578063a9059cbb1461028a578063dd62ed3e146102ba578063f0141d84146102ea578063f2fde38b14610308576100f5565b8063715018a6146102145780638da5cb5b1461021e57806395d89b411461023c578063a457c2d71461025a576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806370a08231146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610324565b60405161010f91906110b7565b60405180910390f35b610132600480360381019061012d9190611172565b6103b6565b60405161013f91906111cd565b60405180910390f35b6101506103d9565b60405161015d91906111f7565b60405180910390f35b610180600480360381019061017b9190611212565b6103e3565b60405161018d91906111cd565b60405180910390f35b61019e610530565b6040516101ab9190611281565b60405180910390f35b6101ce60048036038101906101c99190611172565b610539565b6040516101db91906111cd565b60405180910390f35b6101fe60048036038101906101f9919061129c565b610570565b60405161020b91906111f7565b60405180910390f35b61021c6105b8565b005b6102266105cc565b60405161023391906112d8565b60405180910390f35b6102446105f6565b60405161025191906110b7565b60405180910390f35b610274600480360381019061026f9190611172565b610688565b60405161028191906111cd565b60405180910390f35b6102a4600480360381019061029f9190611172565b6106ff565b6040516102b191906111cd565b60405180910390f35b6102d460048036038101906102cf91906112f3565b610722565b6040516102e191906111f7565b60405180910390f35b6102f26107a9565b6040516102ff91906111f7565b60405180910390f35b610322600480360381019061031d919061129c565b6107b2565b005b60606003805461033390611362565b80601f016020809104026020016040519081016040528092919081815260200182805461035f90611362565b80156103ac5780601f10610381576101008083540402835291602001916103ac565b820191906000526020600020905b81548152906001019060200180831161038f57829003601f168201915b5050505050905090565b6000806103c1610838565b90506103ce818585610840565b600191505092915050565b6000600254905090565b6000806103ee610838565b90506103fb858285610a0f565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663693ae64c6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054336040518363ffffffff1660e01b8152600401610496929190611393565b602060405180830381865afa1580156104b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d791906113d1565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610524858585610aa1565b60019150509392505050565b60006012905090565b600080610544610838565b90506105658185856105568589610722565b610560919061142d565b610840565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105c0610b95565b6105ca6000610c1c565b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461060590611362565b80601f016020809104026020016040519081016040528092919081815260200182805461063190611362565b801561067e5780601f106106535761010080835404028352916020019161067e565b820191906000526020600020905b81548152906001019060200180831161066157829003601f168201915b5050505050905090565b600080610693610838565b905060006106a18286610722565b9050838110156106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd906114d3565b60405180910390fd5b6106f38286868403610840565b60019250505092915050565b60008061070a610838565b9050610717818585610aa1565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006012905090565b6107ba610b95565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361082c5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161082391906112d8565b60405180910390fd5b61083581610c1c565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108b25760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016108a991906112d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109245760006040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161091b91906112d8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a0291906111f7565b60405180910390a3505050565b6000610a1b8484610722565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a9b5781811015610a8d578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610a84939291906114f3565b60405180910390fd5b610a9a8484848403610840565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b135760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b0a91906112d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b855760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b7c91906112d8565b60405180910390fd5b610b90838383610ce2565b505050565b610b9d610838565b73ffffffffffffffffffffffffffffffffffffffff16610bbb6105cc565b73ffffffffffffffffffffffffffffffffffffffff1614610c1a57610bde610838565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610c1191906112d8565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d34578060026000828254610d28919061142d565b92505081905550610f27565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610dc0578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610db7939291906114f3565b60405180910390fd5b81600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166357577195306000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054886040518463ffffffff1660e01b8152600401610e5e9392919061152a565b602060405180830381865afa158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9f91906113d1565b1015610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed7906115d3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f705780600260008282540392505081905550610fbd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161101a91906111f7565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611061578082015181840152602081019050611046565b60008484015250505050565b6000601f19601f8301169050919050565b600061108982611027565b6110938185611032565b93506110a3818560208601611043565b6110ac8161106d565b840191505092915050565b600060208201905081810360008301526110d1818461107e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611109826110de565b9050919050565b611119816110fe565b811461112457600080fd5b50565b60008135905061113681611110565b92915050565b6000819050919050565b61114f8161113c565b811461115a57600080fd5b50565b60008135905061116c81611146565b92915050565b60008060408385031215611189576111886110d9565b5b600061119785828601611127565b92505060206111a88582860161115d565b9150509250929050565b60008115159050919050565b6111c7816111b2565b82525050565b60006020820190506111e260008301846111be565b92915050565b6111f18161113c565b82525050565b600060208201905061120c60008301846111e8565b92915050565b60008060006060848603121561122b5761122a6110d9565b5b600061123986828701611127565b935050602061124a86828701611127565b925050604061125b8682870161115d565b9150509250925092565b600060ff82169050919050565b61127b81611265565b82525050565b60006020820190506112966000830184611272565b92915050565b6000602082840312156112b2576112b16110d9565b5b60006112c084828501611127565b91505092915050565b6112d2816110fe565b82525050565b60006020820190506112ed60008301846112c9565b92915050565b6000806040838503121561130a576113096110d9565b5b600061131885828601611127565b925050602061132985828601611127565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061137a57607f821691505b60208210810361138d5761138c611333565b5b50919050565b60006040820190506113a860008301856111e8565b6113b560208301846112c9565b9392505050565b6000815190506113cb81611146565b92915050565b6000602082840312156113e7576113e66110d9565b5b60006113f5848285016113bc565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006114388261113c565b91506114438361113c565b925082820190508082111561145b5761145a6113fe565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006114bd602583611032565b91506114c882611461565b604082019050919050565b600060208201905081810360008301526114ec816114b0565b9050919050565b600060608201905061150860008301866112c9565b61151560208301856111e8565b61152260408301846111e8565b949350505050565b600060608201905061153f60008301866112c9565b61154c60208301856111e8565b61155960408301846112c9565b949350505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006115bd602683611032565b91506115c882611561565b604082019050919050565b600060208201905081810360008301526115ec816115b0565b905091905056fea26469706673582212200e831bccc4652a007ce8a5197e53e264cce6a2efce3b3785295e8ba75bcfb67a64736f6c63430008130033000000000000000000000000e1fef41f0d04161f820ec291fab8bb5351f3d521