[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_sytmbol", "type": "string" }, { "internalType": "uint256", "name": "_total", "type": "uint256" }, { "internalType": "uint8", "name": "_decimals", "type": "uint8" } ], "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" } ]
60806040526005805460ff1916601217905534801561001c575f5ffd5b50604051610b59380380610b5983398101604081905261003b9161027b565b838360036100498382610384565b5060046100568282610384565b50506005805460ff191660ff841617905550610072338361007b565b50505050610463565b6001600160a01b0382166100a95760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b6100b45f83836100b8565b5050565b6001600160a01b0383166100e2578060025f8282546100d7919061043e565b909155506101529050565b6001600160a01b0383165f90815260208190526040902054818110156101345760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100a0565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661016e5760028054829003905561018c565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101d191815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610201575f5ffd5b81516001600160401b0381111561021a5761021a6101de565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610248576102486101de565b60405281815283820160200185101561025f575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f6080858703121561028e575f5ffd5b84516001600160401b038111156102a3575f5ffd5b6102af878288016101f2565b602087015190955090506001600160401b038111156102cc575f5ffd5b6102d8878288016101f2565b93505060408501519150606085015160ff811681146102f5575f5ffd5b939692955090935050565b600181811c9082168061031457607f821691505b60208210810361033257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561037f57805f5260205f20601f840160051c8101602085101561035d5750805b601f840160051c820191505b8181101561037c575f8155600101610369565b50505b505050565b81516001600160401b0381111561039d5761039d6101de565b6103b1816103ab8454610300565b84610338565b6020601f8211600181146103e3575f83156103cc5750848201515b5f19600385901b1c1916600184901b17845561037c565b5f84815260208120601f198516915b8281101561041257878501518255602094850194600190920191016103f2565b508482101561042f57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8082018082111561045d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6106e9806104705f395ff3fe608060405234801561000f575f5ffd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce567146100fa57806370a082311461010f57806395d89b4114610137578063a9059cbb1461013f578063dd62ed3e14610152575f5ffd5b806306fdde0314610094578063095ea7b3146100b257806318160ddd146100d557806323b872dd146100e7575b5f5ffd5b61009c61018a565b6040516100a99190610559565b60405180910390f35b6100c56100c03660046105a9565b61021a565b60405190151581526020016100a9565b6002545b6040519081526020016100a9565b6100c56100f53660046105d1565b610233565b60055460405160ff90911681526020016100a9565b6100d961011d36600461060b565b6001600160a01b03165f9081526020819052604090205490565b61009c610256565b6100c561014d3660046105a9565b610265565b6100d961016036600461062b565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101999061065c565b80601f01602080910402602001604051908101604052809291908181526020018280546101c59061065c565b80156102105780601f106101e757610100808354040283529160200191610210565b820191905f5260205f20905b8154815290600101906020018083116101f357829003601f168201915b5050505050905090565b5f33610227818585610272565b60019150505b92915050565b5f33610240858285610284565b61024b858585610304565b506001949350505050565b6060600480546101999061065c565b5f33610227818585610304565b61027f8383836001610361565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146102fe57818110156102f057604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6102fe84848484035f610361565b50505050565b6001600160a01b03831661032d57604051634b637e8f60e11b81525f60048201526024016102e7565b6001600160a01b0382166103565760405163ec442f0560e01b81525f60048201526024016102e7565b61027f838383610433565b6001600160a01b03841661038a5760405163e602df0560e01b81525f60048201526024016102e7565b6001600160a01b0383166103b357604051634a1406b160e11b81525f60048201526024016102e7565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156102fe57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161042591815260200190565b60405180910390a350505050565b6001600160a01b03831661045d578060025f8282546104529190610694565b909155506104cd9050565b6001600160a01b0383165f90815260208190526040902054818110156104af5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016102e7565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166104e957600280548290039055610507565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161054c91815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146105a4575f5ffd5b919050565b5f5f604083850312156105ba575f5ffd5b6105c38361058e565b946020939093013593505050565b5f5f5f606084860312156105e3575f5ffd5b6105ec8461058e565b92506105fa6020850161058e565b929592945050506040919091013590565b5f6020828403121561061b575f5ffd5b6106248261058e565b9392505050565b5f5f6040838503121561063c575f5ffd5b6106458361058e565b91506106536020840161058e565b90509250929050565b600181811c9082168061067057607f821691505b60208210810361068e57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561022d57634e487b7160e01b5f52601160045260245ffdfea264697066735822122011c6462ba4ae642542d440b1203a429736f028ed4d53cac505ce62df3f41bc4564736f6c634300081b0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000d92289838d21a99680000000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000e4575726f706120436c697070657200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024543000000000000000000000000000000000000000000000000000000000000