[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "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" }, { "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": "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": "tokens", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "tokenOwner", "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": "amount", "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": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "multicall", "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": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "tokenSymbol", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "amount", "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": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526003805460ff191660121790553480156200001e57600080fd5b5060405162000f9438038062000f948339810160408190526200004191620001d8565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360016200008e8482620002da565b5060026200009d8382620002da565b50600354620000b19060ff16600a620004bb565b620000bd9082620004d0565b600481905533600081815260056020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050620004ea565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013b57600080fd5b81516001600160401b038082111562000158576200015862000113565b604051601f8301601f19908116603f0116810190828211818310171562000183576200018362000113565b81604052838152602092508683858801011115620001a057600080fd5b600091505b83821015620001c45785820183015181830184015290820190620001a5565b600093810190920192909252949350505050565b600080600060608486031215620001ee57600080fd5b83516001600160401b03808211156200020657600080fd5b620002148783880162000129565b945060208601519150808211156200022b57600080fd5b506200023a8682870162000129565b925050604084015190509250925092565b600181811c908216806200026057607f821691505b6020821081036200028157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002d557600081815260208120601f850160051c81016020861015620002b05750805b601f850160051c820191505b81811015620002d157828155600101620002bc565b5050505b505050565b81516001600160401b03811115620002f657620002f662000113565b6200030e816200030784546200024b565b8462000287565b602080601f8311600181146200034657600084156200032d5750858301515b600019600386901b1c1916600185901b178555620002d1565b600085815260208120601f198616915b82811015620003775788860151825594840194600190910190840162000356565b5085821015620003965787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003fd578160001904821115620003e157620003e1620003a6565b80851615620003ef57918102915b93841c9390800290620003c1565b509250929050565b6000826200041657506001620004b5565b816200042557506000620004b5565b81600181146200043e5760028114620004495762000469565b6001915050620004b5565b60ff8411156200045d576200045d620003a6565b50506001821b620004b5565b5060208310610133831016604e8410600b84101617156200048e575081810a620004b5565b6200049a8383620003bc565b8060001904821115620004b157620004b1620003a6565b0290505b92915050565b6000620004c9838362000405565b9392505050565b8082028115828204841417620004b557620004b5620003a6565b610a9a80620004fa6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806397541e9f1161006657806397541e9f146101c4578063a9059cbb146101d9578063dd62ed3e146101ec578063f2fde38b1461022557600080fd5b806370a08231146101785780638da5cb5b146101a157806395d89b41146101bc57600080fd5b8063033b9b4f146100d457806306fdde0314610110578063095ea7b31461012557806318160ddd1461014857806323b872dd14610150578063313ce56714610163575b600080fd5b6100fd6100e2366004610900565b6001600160a01b031660009081526009602052604090205490565b6040519081526020015b60405180910390f35b610118610238565b6040516101079190610922565b610138610133366004610970565b6102ca565b6040519015158152602001610107565b6004546100fd565b61013861015e36600461099a565b610332565b60035460405160ff9091168152602001610107565b6100fd610186366004610900565b6001600160a01b031660009081526005602052604090205490565b6000546040516001600160a01b039091168152602001610107565b6101186103ca565b6101d76101d2366004610900565b6103d9565b005b6101386101e7366004610970565b6104be565b6100fd6101fa3660046109d6565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6101d7610233366004610900565b6104d4565b60606001805461024790610a09565b80601f016020809104026020016040519081016040528092919081815260200182805461027390610a09565b80156102c05780601f10610295576101008083540402835291602001916102c0565b820191906000526020600020905b8154815290600101906020018083116102a357829003601f168201915b5050505050905090565b3360008181526006602090815260408083206001600160a01b03871680855290835281842086905590518581529293909290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120548281101561038c57604051637dc7a0d960e11b815233600482015260248101829052604481018490526064015b60405180910390fd5b6001600160a01b0385166000908152600660209081526040808320338452909152902083820390556103bf8585856105ee565b506001949350505050565b60606002805461024790610a09565b6000546001600160a01b031633146104335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610383565b336000908152600760205260409020546001600160a01b039081169082160361049e5760405162461bcd60e51b815260206004820152601b60248201527f5370656e646572206973206d756c7469736967206164647265737300000000006044820152606401610383565b6001600160a01b0316600090815260096020526040902063069e10ad9055565b60006104cb3384846105ee565b50600192915050565b6000546001600160a01b0316331461052e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610383565b6001600160a01b0381166105935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610383565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661061857604051634b637e8f60e11b815260006004820152602401610383565b6001600160a01b0382166106425760405163ec442f0560e01b815260006004820152602401610383565b600081116106a45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610383565b6000546001600160a01b0384811691161480156106f2575060006007816106d36000546001600160a01b031690565b6001600160a01b03908116825260208201929092526040016000205416145b1561074057816007600061070e6000546001600160a01b031690565b6001600160a01b039081168252602082019290925260400160002080546001600160a01b031916929091169190911790555b61074b436001610a43565b600a556001600160a01b03831660009081526008602052604090205460ff166107fe57600a546001600160a01b03841660009081526009602052604090205411156107fe5760405162461bcd60e51b815260206004820152603a60248201527f5472616e73666572206e6f7420616c6c6f776564207965743a20696e7375666660448201527f696369656e7420696e636f6d696e67207472616e73666572732e0000000000006064820152608401610383565b6001600160a01b038316600090815260056020526040902054818110156108765760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610383565b6001600160a01b0380851660008181526005602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108d69086815260200190565b60405180910390a350505050565b80356001600160a01b03811681146108fb57600080fd5b919050565b60006020828403121561091257600080fd5b61091b826108e4565b9392505050565b600060208083528351808285015260005b8181101561094f57858101830151858201604001528201610933565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561098357600080fd5b61098c836108e4565b946020939093013593505050565b6000806000606084860312156109af57600080fd5b6109b8846108e4565b92506109c6602085016108e4565b9150604084013590509250925092565b600080604083850312156109e957600080fd5b6109f2836108e4565b9150610a00602084016108e4565b90509250929050565b600181811c90821680610a1d57607f821691505b602082108103610a3d57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561032c57634e487b7160e01b600052601160045260246000fdfea264697066735822122042db795ccc6c5dc588536c7e8cb57fc5cb693163799b3d62f44df05f5220433e64736f6c63430008130033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000001312d00000000000000000000000000000000000000000000000000000000000000000a47616d696e6720496e7500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000947414d494e47494e550000000000000000000000000000000000000000000000