[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_supply", "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": [], "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" } ]
6040608081523461036e57610aa78038038061001a81610373565b928339810160608282031261036e5781516001600160401b03929083811161036e5782610048918301610398565b6020928383015185811161036e578691610063918501610398565b92015193815181811161027a576003908154906001948583811c93168015610364575b8884101461034e578190601f938481116102fd575b50889084831160011461029b57600092610290575b505060001982851b1c191690851b1782555b845192831161027a5760049485548581811c91168015610270575b8882101461025b57828111610215575b50869184116001146101af579383949184926000956101a4575b50501b92600019911b1c19161781555b331561018d576002549083820180921161017857506000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160025533835282815284832084815401905584519384523393a3516106a390816104048239f35b601190634e487b7160e01b6000525260246000fd5b602490600085519163ec442f0560e01b8352820152fd5b015193503880610107565b9190601f198416928660005284886000209460005b8a898383106101fe57505050106101e4575b50505050811b018155610117565b01519060f884600019921b161c19169055388080806101d6565b8686015189559097019694850194889350016101c4565b86600052876000208380870160051c8201928a8810610252575b0160051c019086905b8281106102465750506100ed565b60008155018690610238565b9250819261022f565b602287634e487b7160e01b6000525260246000fd5b90607f16906100dd565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b0565b90879350601f19831691866000528a6000209260005b8c8282106102e757505084116102cf575b505050811b0182556100c2565b015160001983871b60f8161c191690553880806102c2565b8385015186558b979095019493840193016102b1565b90915084600052886000208480850160051c8201928b8610610345575b918991869594930160051c01915b82811061033657505061009b565b60008155859450899101610328565b9250819261031a565b634e487b7160e01b600052602260045260246000fd5b92607f1692610086565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761027a57604052565b919080601f8401121561036e5782516001600160401b03811161027a576020906103ca601f8201601f19168301610373565b9281845282828701011161036e5760005b8181106103f057508260009394955001015290565b85810183015184820184015282016103db56fe608060408181526004918236101561001657600080fd5b600092833560e01c91826306fdde031461043b57508163095ea7b31461038d57816318160ddd1461036e57816323b872dd14610277578163313ce5671461025b57816370a082311461022457816395d89b411461010357508063a9059cbb146100d35763dd62ed3e1461008857600080fd5b346100cf57806003193601126100cf57806020926100a461055e565b6100ac610579565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5080fd5b50346100cf57806003193601126100cf576020906100fc6100f261055e565b602435903361058f565b5160018152f35b8383346100cf57816003193601126100cf5780519082845460018160011c906001831692831561021a575b6020938484108114610207578388529081156101eb5750600114610196575b505050829003601f01601f191682019267ffffffffffffffff841183851017610183575082918261017f925282610515565b0390f35b634e487b7160e01b815260418552602490fd5b8787529192508591837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8385106101d7575050505083010185808061014d565b8054888601830152930192849082016101c1565b60ff1916878501525050151560051b840101905085808061014d565b634e487b7160e01b895260228a52602489fd5b91607f169161012e565b5050346100cf5760203660031901126100cf5760209181906001600160a01b0361024c61055e565b16815280845220549051908152f35b5050346100cf57816003193601126100cf576020905160128152f35b9050823461036b57606036600319011261036b5761029361055e565b61029b610579565b916044359360018060a01b0383168083526001602052868320338452602052868320549160001983036102d7575b6020886100fc89898961058f565b86831061033f578115610328573315610311575082526001602090815286832033845281529186902090859003905582906100fc876102c9565b8751634a1406b160e11b8152908101849052602490fd5b875163e602df0560e01b8152908101849052602490fd5b8751637dc7a0d960e11b8152339181019182526020820193909352604081018790528291506060010390fd5b80fd5b5050346100cf57816003193601126100cf576020906002549051908152f35b9050346104375781600319360112610437576103a761055e565b602435903315610420576001600160a01b031691821561040957508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b8280fd5b849084346104375782600319360112610437578260035460018160011c906001831692831561050b575b6020938484108114610207578388529081156101eb57506001146104b557505050829003601f01601f191682019267ffffffffffffffff841183851017610183575082918261017f925282610515565b600387529192508591837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8385106104f7575050505083010185808061014d565b8054888601830152930192849082016104e1565b91607f1691610465565b6020808252825181830181905290939260005b82811061054a57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610528565b600435906001600160a01b038216820361057457565b600080fd5b602435906001600160a01b038216820361057457565b916001600160a01b03808416928315610654571692831561063b5760009083825281602052604082205490838210610609575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fdfea2646970667358221220e74781a6ef3bae7bb498e3b598003ea3a17aeb1eb2df7c57d87bd37fa3620d3764736f6c63430008190033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000073ce27351811f40c000000000000000000000000000000000000000000000000000000000000000000000a456c6f6e4f6e4d617273000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003454f4d0000000000000000000000000000000000000000000000000000000000