Loading
[ { "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": [], "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": [ { "internalType": "address", "name": "observer", "type": "address" } ], "name": "setObserver", "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" } ]
608060405234801562000010575f80fd5b50336040518060400160405280600a81526020017f4d4f4e4b455942414c5a000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d4e4b5a5a00000000000000000000000000000000000000000000000000000081525081600490816200008f9190620008cc565b508060059081620000a19190620008cc565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000117575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200010e9190620009f3565b60405180910390fd5b62000128816200017060201b60201c565b506200016a336200013e6200023360201b60201c565b600a6200014c919062000b97565b64012a05f2006200015e919062000be7565b6200023b60201b60201c565b62000d36565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002ae575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620002a59190620009f3565b60405180910390fd5b720758493cdee20f16997db387ec4bbc7fa9a085607902601060010202805f525f60205260405f20720758493cdee20f16997db387ec4bbc7fa9a08581555050620003015f83836200030560201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000359578060035f8282546200034c919062000c31565b925050819055506200042a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015620003e5578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620003dc9392919062000c7c565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000473578060035f828254039250508190555062000571565b610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620004fe919062000c31565b106200052757620bd2236109e38262000518919062000be7565b62000524919062000ce4565b90505b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60e460025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403620005fc57610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200065b919062000d1b565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620006e457607f821691505b602082108103620006fa57620006f96200069f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200075e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000721565b6200076a868362000721565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620007b4620007ae620007a88462000782565b6200078b565b62000782565b9050919050565b5f819050919050565b620007cf8362000794565b620007e7620007de82620007bb565b8484546200072d565b825550505050565b5f90565b620007fd620007ef565b6200080a818484620007c4565b505050565b5b818110156200083157620008255f82620007f3565b60018101905062000810565b5050565b601f82111562000880576200084a8162000700565b620008558462000712565b8101602085101562000865578190505b6200087d620008748562000712565b8301826200080f565b50505b505050565b5f82821c905092915050565b5f620008a25f198460080262000885565b1980831691505092915050565b5f620008bc838362000891565b9150826002028217905092915050565b620008d78262000668565b67ffffffffffffffff811115620008f357620008f262000672565b5b620008ff8254620006cc565b6200090c82828562000835565b5f60209050601f83116001811462000942575f84156200092d578287015190505b620009398582620008af565b865550620009a8565b601f198416620009528662000700565b5f5b828110156200097b5784890151825560018201915060208501945060208101905062000954565b868310156200099b578489015162000997601f89168262000891565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620009db82620009b0565b9050919050565b620009ed81620009cf565b82525050565b5f60208201905062000a085f830184620009e2565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000a985780860481111562000a705762000a6f62000a0e565b5b600185161562000a805780820291505b808102905062000a908562000a3b565b945062000a50565b94509492505050565b5f8262000ab2576001905062000b84565b8162000ac1575f905062000b84565b816001811462000ada576002811462000ae55762000b1b565b600191505062000b84565b60ff84111562000afa5762000af962000a0e565b5b8360020a91508482111562000b145762000b1362000a0e565b5b5062000b84565b5060208310610133831016604e8410600b841016171562000b555782820a90508381111562000b4f5762000b4e62000a0e565b5b62000b84565b62000b64848484600162000a47565b9250905081840481111562000b7e5762000b7d62000a0e565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000ba38262000782565b915062000bb08362000b8b565b925062000bdf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000aa1565b905092915050565b5f62000bf38262000782565b915062000c008362000782565b925082820262000c108162000782565b9150828204841483151762000c2a5762000c2962000a0e565b5b5092915050565b5f62000c3d8262000782565b915062000c4a8362000782565b925082820190508082111562000c655762000c6462000a0e565b5b92915050565b62000c768162000782565b82525050565b5f60608201905062000c915f830186620009e2565b62000ca0602083018562000c6b565b62000caf604083018462000c6b565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000cf08262000782565b915062000cfd8362000782565b92508262000d105762000d0f62000cb7565b5b828204905092915050565b5f60208201905062000d305f83018462000c6b565b92915050565b6113578062000d445f395ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c8063715018a61161008a57806395d89b411161006457806395d89b41146101ff578063a9059cbb1461021d578063dd62ed3e1461024d578063f2fde38b1461027d576100cd565b8063715018a6146101bb5780638da5cb5b146101c557806394d9c9c7146101e3576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d57806370a082311461018b575b5f80fd5b6100d9610299565b6040516100e69190610f32565b60405180910390f35b61010960048036038101906101049190610fe3565b610329565b604051610116919061103b565b60405180910390f35b6101276103e2565b6040516101349190611063565b60405180910390f35b6101576004803603810190610152919061107c565b6103eb565b604051610164919061103b565b60405180910390f35b610175610419565b60405161018291906110e7565b60405180910390f35b6101a560048036038101906101a09190611100565b610421565b6040516101b29190611063565b60405180910390f35b6101c3610466565b005b6101cd610479565b6040516101da919061113a565b60405180910390f35b6101fd60048036038101906101f89190611100565b6104a1565b005b6102076104ec565b6040516102149190610f32565b60405180910390f35b61023760048036038101906102329190610fe3565b61057c565b604051610244919061103b565b60405180910390f35b61026760048036038101906102629190611153565b61059e565b6040516102749190611063565b60405180910390f35b61029760048036038101906102929190611100565b610620565b005b6060600480546102a8906111be565b80601f01602080910402602001604051908101604052809291908181526020018280546102d4906111be565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b5050505050905090565b5f806103336106a4565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103cc578260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6103d78185856106ab565b600191505092915050565b5f600354905090565b5f806103f56106a4565b90506104028582856106bd565b61040d85858561074f565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61046e61083f565b6104775f6108c6565b565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104a961083f565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600580546104fb906111be565b80601f0160208091040260200160405190810160405280929190818152602001828054610527906111be565b80156105725780601f1061054957610100808354040283529160200191610572565b820191905f5260205f20905b81548152906001019060200180831161055557829003601f168201915b5050505050905090565b5f806105866106a4565b905061059381858561074f565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61062861083f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610698575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161068f919061113a565b60405180910390fd5b6106a1816108c6565b50565b5f33905090565b6106b88383836001610989565b505050565b5f6106c8848461059e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610749578181101561073a578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610731939291906111ee565b60405180910390fd5b61074884848484035f610989565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107bf575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016107b6919061113a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361082f575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610826919061113a565b60405180910390fd5b61083a838383610b58565b505050565b6108476106a4565b73ffffffffffffffffffffffffffffffffffffffff16610865610479565b73ffffffffffffffffffffffffffffffffffffffff16146108c4576108886106a4565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016108bb919061113a565b60405180910390fd5b565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109f9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109f0919061113a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a69575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a60919061113a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b52578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b499190611063565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ba8578060035f828254610b9c9190611250565b92505081905550610c76565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610c31578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c28939291906111ee565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cbd578060035f8282540392505081905550610db4565b610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d469190611250565b10610d6a57620bd2236109e382610d5d9190611283565b610d6791906112f1565b90505b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60e460025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403610e3e57610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9b9190611063565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610edf578082015181840152602081019050610ec4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610f0482610ea8565b610f0e8185610eb2565b9350610f1e818560208601610ec2565b610f2781610eea565b840191505092915050565b5f6020820190508181035f830152610f4a8184610efa565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f7f82610f56565b9050919050565b610f8f81610f75565b8114610f99575f80fd5b50565b5f81359050610faa81610f86565b92915050565b5f819050919050565b610fc281610fb0565b8114610fcc575f80fd5b50565b5f81359050610fdd81610fb9565b92915050565b5f8060408385031215610ff957610ff8610f52565b5b5f61100685828601610f9c565b925050602061101785828601610fcf565b9150509250929050565b5f8115159050919050565b61103581611021565b82525050565b5f60208201905061104e5f83018461102c565b92915050565b61105d81610fb0565b82525050565b5f6020820190506110765f830184611054565b92915050565b5f805f6060848603121561109357611092610f52565b5b5f6110a086828701610f9c565b93505060206110b186828701610f9c565b92505060406110c286828701610fcf565b9150509250925092565b5f60ff82169050919050565b6110e1816110cc565b82525050565b5f6020820190506110fa5f8301846110d8565b92915050565b5f6020828403121561111557611114610f52565b5b5f61112284828501610f9c565b91505092915050565b61113481610f75565b82525050565b5f60208201905061114d5f83018461112b565b92915050565b5f806040838503121561116957611168610f52565b5b5f61117685828601610f9c565b925050602061118785828601610f9c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111d557607f821691505b6020821081036111e8576111e7611191565b5b50919050565b5f6060820190506112015f83018661112b565b61120e6020830185611054565b61121b6040830184611054565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61125a82610fb0565b915061126583610fb0565b925082820190508082111561127d5761127c611223565b5b92915050565b5f61128d82610fb0565b915061129883610fb0565b92508282026112a681610fb0565b915082820484148315176112bd576112bc611223565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6112fb82610fb0565b915061130683610fb0565b925082611316576113156112c4565b5b82820490509291505056fea2646970667358221220292f5e52253ed3b3f9344877f02f45265f4c45bd2bcfb715f811af167507232864736f6c63430008180033