[ { "inputs": [ { "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" } ], "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": "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": "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" } ]
60806040523480156200001157600080fd5b5060405162000cbb38038062000cbb8339810160408190526200003491620002a4565b6003620000428382620003a9565b506004620000518282620003a9565b506200005e338462000067565b5050506200049d565b6001600160a01b038216620000975760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000a560008383620000a9565b5050565b6001600160a01b038316620000d8578060026000828254620000cc919062000475565b909155506200014c9050565b6001600160a01b038316600090815260208190526040902054818110156200012d5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016200008e565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166200016a5760028054829003905562000189565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001cf91815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200020457600080fd5b81516001600160401b0380821115620002215762000221620001dc565b604051601f8301601f19908116603f011681019082821181831017156200024c576200024c620001dc565b81604052838152602092508660208588010111156200026a57600080fd5b600091505b838210156200028e57858201830151818301840152908201906200026f565b6000602085830101528094505050505092915050565b600080600060608486031215620002ba57600080fd5b835160208501519093506001600160401b0380821115620002da57600080fd5b620002e887838801620001f2565b93506040860151915080821115620002ff57600080fd5b506200030e86828701620001f2565b9150509250925092565b600181811c908216806200032d57607f821691505b6020821081036200034e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003a4576000816000526020600020601f850160051c810160208610156200037f5750805b601f850160051c820191505b81811015620003a0578281556001016200038b565b5050505b505050565b81516001600160401b03811115620003c557620003c5620001dc565b620003dd81620003d6845462000318565b8462000354565b602080601f831160018114620004155760008415620003fc5750858301515b600019600386901b1c1916600185901b178555620003a0565b600085815260208120601f198616915b82811015620004465788860151825594840194600190910190840162000425565b5085821015620004655787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200049757634e487b7160e01b600052601160045260246000fd5b92915050565b61080e80620004ad6000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c8063313ce5671161007657806395d89b411161005b57806395d89b4114610146578063a9059cbb1461014e578063dd62ed3e1461016157600080fd5b8063313ce5671461010e57806370a082311461011d57600080fd5b806306fdde03146100a8578063095ea7b3146100c657806318160ddd146100e957806323b872dd146100fb575b600080fd5b6100b061019a565b6040516100bd9190610657565b60405180910390f35b6100d96100d43660046106c2565b61022c565b60405190151581526020016100bd565b6002545b6040519081526020016100bd565b6100d96101093660046106ec565b61028d565b604051601281526020016100bd565b6100ed61012b366004610728565b6001600160a01b031660009081526020819052604090205490565b6100b06102b1565b6100d961015c3660046106c2565b6102c0565b6100ed61016f36600461074a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101a99061077d565b80601f01602080910402602001604051908101604052809291908181526020018280546101d59061077d565b80156102225780601f106101f757610100808354040283529160200191610222565b820191906000526020600020905b81548152906001019060200180831161020557829003601f168201915b5050505050905090565b6000336000526040600020806000527fa55d531f1c003d91ccc9d01ff6f022d6c16a8e201304a8bfc404f81ce44dd9818103610274576d04ee2d6d415b85acef810000000081555b50336102818185856102ce565b60019150505b92915050565b60003361029b8582856102e0565b6102a685858561037c565b506001949350505050565b6060600480546101a99061077d565b60003361028181858561037c565b6102db838383600161040d565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146103765781811015610367576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6103768484848403600061040d565b50505050565b6001600160a01b0383166103bf576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526000600482015260240161035e565b6001600160a01b038216610402576040517fec442f050000000000000000000000000000000000000000000000000000000081526000600482015260240161035e565b6102db838383610514565b6001600160a01b038416610450576040517fe602df050000000000000000000000000000000000000000000000000000000081526000600482015260240161035e565b6001600160a01b038316610493576040517f94280d620000000000000000000000000000000000000000000000000000000081526000600482015260240161035e565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561037657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161050691815260200190565b60405180910390a350505050565b6001600160a01b03831661053f57806002600082825461053491906107b7565b909155506105ca9050565b6001600160a01b038316600090815260208190526040902054818110156105ab576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602481018290526044810183905260640161035e565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166105e657600280548290039055610605565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161064a91815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b8181101561068557858101830151858201604001528201610669565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106bd57600080fd5b919050565b600080604083850312156106d557600080fd5b6106de836106a6565b946020939093013593505050565b60008060006060848603121561070157600080fd5b61070a846106a6565b9250610718602085016106a6565b9150604084013590509250925092565b60006020828403121561073a57600080fd5b610743826106a6565b9392505050565b6000806040838503121561075d57600080fd5b610766836106a6565b9150610774602084016106a6565b90509250929050565b600181811c9082168061079157607f821691505b6020821081036107b157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028757634e487b7160e01b600052601160045260246000fdfea2646970667358221220efb5c20b9c88b5a69a67e7c8a2a67f134d319c7c9ce035a775129e1d8e0e66c464736f6c63430008180033000000000000000000000000000000000000000000a56fa5b99019a5c8000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000007417263686976610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044152434800000000000000000000000000000000000000000000000000000000