[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "initialSupply", "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": "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": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "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" } ]
60806040523480156200001157600080fd5b5060405162000fa038038062000fa0833981016040819052620000349162000310565b8282600362000044838262000493565b50600462000053828262000493565b5050506200006833826200007160201b60201c565b50505062000603565b6001600160a01b038216620000a757600060405163ec442f0560e01b81526004016200009e919062000582565b60405180910390fd5b620000b560008383620000b9565b5050565b6001600160a01b038316620000e8578060026000828254620000dc9190620005a8565b909155506200014a9050565b6001600160a01b038316600090815260208190526040902054818110156200012b5783818360405163391434e360e21b81526004016200009e93929190620005c5565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001685760028054829003905562000187565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001cc9190620005f3565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620002175762000217620001d9565b6040525050565b60006200022a60405190565b9050620002388282620001ef565b919050565b60006001600160401b03821115620002595762000259620001d9565b601f19601f83011660200192915050565b60005b83811015620002875781810151838201526020016200026d565b50506000910152565b6000620002a7620002a1846200023d565b6200021e565b9050828152838383011115620002c057620002c0600080fd5b620002d08360208301846200026a565b9392505050565b600082601f830112620002ed57620002ed600080fd5b8151620002ff84826020860162000290565b949350505050565b80515b92915050565b6000806000606084860312156200032a576200032a600080fd5b83516001600160401b03811115620003455762000345600080fd5b6200035386828701620002d7565b602086015190945090506001600160401b03811115620003765762000376600080fd5b6200038486828701620002d7565b92505062000396856040860162000307565b90509250925092565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620003ca57607f821691505b602082108103620003df57620003df6200039f565b50919050565b60006200030a620003f38381565b90565b6200040183620003e5565b815460001960089490940293841b1916921b91909117905550565b60006200042b818484620003f6565b505050565b81811015620000b557620004466000826200041c565b60010162000430565b601f8211156200042b576000818152602090206020601f85010481016020851015620004785750805b6200048c6020601f86010483018262000430565b5050505050565b81516001600160401b03811115620004af57620004af620001d9565b620004bb8254620003b5565b620004c88282856200044f565b506020601f821160018114620005005760008315620004e75750848201515b600019600885021c19811660028502178555506200048c565b600084815260208120601f198516915b8281101562000532578785015182556020948501946001909201910162000510565b5084821015620005505783870151600019601f87166008021c191681555b50505050600202600101905550565b60006001600160a01b0382166200030a565b6200057c816200055f565b82525050565b602081016200030a828462000571565b634e487b7160e01b600052601160045260246000fd5b808201808211156200030a576200030a62000592565b806200057c565b60608101620005d5828662000571565b620005e46020830185620005be565b620002ff6040830184620005be565b602081016200030a8284620005be565b61098d80620006136000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610172578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806340c10f191461013457806370a082311461014957600080fd5b806318160ddd116100a757806318160ddd1461010157806323b872dd14610112578063313ce5671461012557600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101c6565b6040516100d89190610705565b60405180910390f35b6100f46100ef366004610761565b610258565b6040516100d891906107a3565b6002545b6040516100d891906107b7565b6100f46101203660046107c5565b610272565b60126040516100d89190610817565b610147610142366004610761565b610296565b005b610105610157366004610825565b6001600160a01b031660009081526020819052604090205490565b6100cb6102a4565b6100f4610188366004610761565b6102b3565b61010561019b366004610844565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101d5906108a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610201906108a2565b801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b5050505050905090565b6000336102668185856102c1565b60019150505b92915050565b6000336102808582856102d3565b61028b85858561037e565b506001949350505050565b6102a0828261040f565b5050565b6060600480546101d5906108a2565b60003361026681858561037e565b6102ce838383600161045e565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103785781811015610369578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610360939291906108d7565b60405180910390fd5b6103788484848403600061045e565b50505050565b6001600160a01b0383166103c15760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016103609190610907565b6001600160a01b0382166104045760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103609190610907565b6102ce838383610563565b6001600160a01b0382166104525760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103609190610907565b6102a060008383610563565b6001600160a01b0384166104a15760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016103609190610907565b6001600160a01b0383166104e45760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016103609190610907565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561037857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161055591906107b7565b60405180910390a350505050565b6001600160a01b03831661058e5780600260008282546105839190610944565b909155506106069050565b6001600160a01b038316600090815260208190526040902054818110156105e7578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610360939291906108d7565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661062257600280548290039055610641565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161068491906107b7565b60405180910390a3505050565b60005b838110156106ac578181015183820152602001610694565b50506000910152565b60006106bf825190565b8084526020840193506106d6818560208601610691565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920192915050565b6020808252810161071681846106b5565b9392505050565b60006001600160a01b03821661026c565b6107378161071d565b811461074257600080fd5b50565b803561026c8161072e565b80610737565b803561026c81610750565b6000806040838503121561077757610777600080fd5b6107818484610745565b91506107908460208501610756565b90509250929050565b8015155b82525050565b6020810161026c8284610799565b8061079d565b6020810161026c82846107b1565b6000806000606084860312156107dd576107dd600080fd5b6107e78585610745565b92506107f68560208601610745565b91506108058560408601610756565b90509250925092565b60ff811661079d565b6020810161026c828461080e565b60006020828403121561083a5761083a600080fd5b6107168383610745565b6000806040838503121561085a5761085a600080fd5b6108648484610745565b91506107908460208501610745565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6002810460018216806108b657607f821691505b6020821081036108c8576108c8610873565b50919050565b61079d8161071d565b606081016108e582866108ce565b6108f260208301856107b1565b6108ff60408301846107b1565b949350505050565b6020810161026c82846108ce565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561026c5761026c61091556fea26469706673582212202a0a7872a3af94909002cefc48f1fc54f5cb9f0cc559dc04b34e0c2aaccca46964736f6c63430008160033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000115eec47f6cf7e350000000000000000000000000000000000000000000000000000000000000000000006726577617264000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067265776172640000000000000000000000000000000000000000000000000000