[ { "inputs": [], "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" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": "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": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "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": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561000f575f5ffd5b5073cd8ddee99c0c4be4cd699661ae9c00c69d1eb4a86040518060400160405280600981526020017f47726f77746820414900000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f47524f2d4149000000000000000000000000000000000000000000000000000081525081600390816100a09190610704565b5080600490816100b09190610704565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610123575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161011a9190610812565b60405180910390fd5b6101328161016660201b60201c565b5061016173cd8ddee99c0c4be4cd699661ae9c00c69d1eb4a86934f086f3b33b6840000061022960201b60201c565b6108e8565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610299575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016102909190610812565b60405180910390fd5b6102aa5f83836102ae60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036102fe578060025f8282546102f29190610858565b925050819055506103cc565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610387578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161037e9392919061089a565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610413578060025f828254039250508190555061045d565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104ba91906108cf565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061054257607f821691505b602082108103610555576105546104fe565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261057c565b6105c1868361057c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6106056106006105fb846105d9565b6105e2565b6105d9565b9050919050565b5f819050919050565b61061e836105eb565b61063261062a8261060c565b848454610588565b825550505050565b5f5f905090565b61064961063a565b610654818484610615565b505050565b5b818110156106775761066c5f82610641565b60018101905061065a565b5050565b601f8211156106bc5761068d8161055b565b6106968461056d565b810160208510156106a5578190505b6106b96106b18561056d565b830182610659565b50505b505050565b5f82821c905092915050565b5f6106dc5f19846008026106c1565b1980831691505092915050565b5f6106f483836106cd565b9150826002028217905092915050565b61070d826104c7565b67ffffffffffffffff811115610726576107256104d1565b5b610730825461052b565b61073b82828561067b565b5f60209050601f83116001811461076c575f841561075a578287015190505b61076485826106e9565b8655506107cb565b601f19841661077a8661055b565b5f5b828110156107a15784890151825560018201915060208501945060208101905061077c565b868310156107be57848901516107ba601f8916826106cd565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107fc826107d3565b9050919050565b61080c816107f2565b82525050565b5f6020820190506108255f830184610803565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610862826105d9565b915061086d836105d9565b92508282019050808211156108855761088461082b565b5b92915050565b610894816105d9565b82525050565b5f6060820190506108ad5f830186610803565b6108ba602083018561088b565b6108c7604083018461088b565b949350505050565b5f6020820190506108e25f83018461088b565b92915050565b611096806108f55f395ff3fe608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b4114610201578063a9059cbb1461021f578063dd62ed3e1461024f578063f2fde38b1461027f576100cd565b806370a08231146101a9578063715018a6146101d95780638da5cb5b146101e3576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806323b872dd1461013d578063313ce5671461016d57806332cb6b0c1461018b575b5f5ffd5b6100d961029b565b6040516100e69190610d0f565b60405180910390f35b61010960048036038101906101049190610dc0565b61032b565b6040516101169190610e18565b60405180910390f35b61012761034d565b6040516101349190610e40565b60405180910390f35b61015760048036038101906101529190610e59565b610356565b6040516101649190610e18565b60405180910390f35b610175610384565b6040516101829190610ec4565b60405180910390f35b61019361038c565b6040516101a09190610e40565b60405180910390f35b6101c360048036038101906101be9190610edd565b61039a565b6040516101d09190610e40565b60405180910390f35b6101e16103df565b005b6101eb6103f2565b6040516101f89190610f17565b60405180910390f35b61020961041a565b6040516102169190610d0f565b60405180910390f35b61023960048036038101906102349190610dc0565b6104aa565b6040516102469190610e18565b60405180910390f35b61026960048036038101906102649190610f30565b6104cc565b6040516102769190610e40565b60405180910390f35b61029960048036038101906102949190610edd565b61054e565b005b6060600380546102aa90610f9b565b80601f01602080910402602001604051908101604052809291908181526020018280546102d690610f9b565b80156103215780601f106102f857610100808354040283529160200191610321565b820191905f5260205f20905b81548152906001019060200180831161030457829003601f168201915b5050505050905090565b5f5f6103356105d2565b90506103428185856105d9565b600191505092915050565b5f600254905090565b5f5f6103606105d2565b905061036d8582856105eb565b61037885858561067d565b60019150509392505050565b5f6012905090565b6934f086f3b33b6840000081565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6103e761076d565b6103f05f6107f4565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461042990610f9b565b80601f016020809104026020016040519081016040528092919081815260200182805461045590610f9b565b80156104a05780601f10610477576101008083540402835291602001916104a0565b820191905f5260205f20905b81548152906001019060200180831161048357829003601f168201915b5050505050905090565b5f5f6104b46105d2565b90506104c181858561067d565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61055661076d565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105c6575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105bd9190610f17565b60405180910390fd5b6105cf816107f4565b50565b5f33905090565b6105e683838360016108b7565b505050565b5f6105f684846104cc565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106775781811015610668578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161065f93929190610fcb565b60405180910390fd5b61067684848484035f6108b7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106ed575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016106e49190610f17565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361075d575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107549190610f17565b60405180910390fd5b610768838383610a86565b505050565b6107756105d2565b73ffffffffffffffffffffffffffffffffffffffff166107936103f2565b73ffffffffffffffffffffffffffffffffffffffff16146107f2576107b66105d2565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016107e99190610f17565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610927575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161091e9190610f17565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610997575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161098e9190610f17565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610a80578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a779190610e40565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ad6578060025f828254610aca919061102d565b92505081905550610ba4565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610b5f578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610b5693929190610fcb565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610beb578060025f8282540392505081905550610c35565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c929190610e40565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610ce182610c9f565b610ceb8185610ca9565b9350610cfb818560208601610cb9565b610d0481610cc7565b840191505092915050565b5f6020820190508181035f830152610d278184610cd7565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d5c82610d33565b9050919050565b610d6c81610d52565b8114610d76575f5ffd5b50565b5f81359050610d8781610d63565b92915050565b5f819050919050565b610d9f81610d8d565b8114610da9575f5ffd5b50565b5f81359050610dba81610d96565b92915050565b5f5f60408385031215610dd657610dd5610d2f565b5b5f610de385828601610d79565b9250506020610df485828601610dac565b9150509250929050565b5f8115159050919050565b610e1281610dfe565b82525050565b5f602082019050610e2b5f830184610e09565b92915050565b610e3a81610d8d565b82525050565b5f602082019050610e535f830184610e31565b92915050565b5f5f5f60608486031215610e7057610e6f610d2f565b5b5f610e7d86828701610d79565b9350506020610e8e86828701610d79565b9250506040610e9f86828701610dac565b9150509250925092565b5f60ff82169050919050565b610ebe81610ea9565b82525050565b5f602082019050610ed75f830184610eb5565b92915050565b5f60208284031215610ef257610ef1610d2f565b5b5f610eff84828501610d79565b91505092915050565b610f1181610d52565b82525050565b5f602082019050610f2a5f830184610f08565b92915050565b5f5f60408385031215610f4657610f45610d2f565b5b5f610f5385828601610d79565b9250506020610f6485828601610d79565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610fb257607f821691505b602082108103610fc557610fc4610f6e565b5b50919050565b5f606082019050610fde5f830186610f08565b610feb6020830185610e31565b610ff86040830184610e31565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61103782610d8d565b915061104283610d8d565b925082820190508082111561105a57611059611000565b5b9291505056fea26469706673582212205b10ce43491d77432781fa8bf75af373535500518866a35826f7b6781d98cd4e64736f6c634300081c0033