[ { "inputs": [ { "internalType": "address", "name": "factory_", "type": "address" } ], "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": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "TMBaseERC20__OnlyFactory", "type": "error" }, { "inputs": [], "name": "TMERC20__InvalidArgsLength", "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": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "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": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "factoryMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "bytes", "name": "args", "type": "bytes" } ], "name": "initialize", "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" } ]
60a034610106576001600160401b0390601f610fd138819003918201601f19168301918483118484101761010b578084926020946040528339810103126101065751906001600160a01b0382168203610106577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100f45780808316036100af575b83608052604051610eaf9081610122823960805181818161063f01526106c70152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a138808061008c565b60405163f92ee8a960e01b8152600490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610ac257508063095ea7b314610a4157806318160ddd14610a0457806323b872dd1461091f578063313ce567146108fe57806370a08231146108a557806395d89b41146107c7578063a4f0ecd31461069f578063a9059cbb1461066e578063c45a015514610629578063dd62ed3e146105e05763e649e2fb146100a357600080fd5b346103355760603660031901126103355760043567ffffffffffffffff8111610335576100d4903690600401610bf9565b60243567ffffffffffffffff8111610335576100f4903690600401610bf9565b67ffffffffffffffff60443511610335573660236044350112156103355767ffffffffffffffff6044356004013511610335573660246044356004013560443501011161033557600080516020610e5a8339815191525467ffffffffffffffff8116801590816105d0575b60011490816105c6575b1590816105bd575b506105ab57600167ffffffffffffffff19821617600080516020610e5a8339815191525560ff8160401c161561057e575b6101aa610daa565b6101b2610daa565b825167ffffffffffffffff811161045b576101db600080516020610dfa83398151915254610c50565b601f8111610508575b506020601f821160011461047c5781929394600092610471575b50508160011b916000199060031b1c191617600080516020610dfa833981519152555b815167ffffffffffffffff811161045b5761024a600080516020610e1a83398151915254610c50565b601f81116103e1575b50602092601f8211600114610357579281929360009261034c575b50508160011b916000199060031b1c191617600080516020610e1a833981519152555b6020604435600401351061033a57602060443560048101358101031261033557602460443501359060ff82168092036103355760ff918219600054161760005560401c16156102dc57005b68ff000000000000000019600080516020610e5a8339815191525416600080516020610e5a833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600080fd5b604051633e22678560e01b8152600490fd5b01519050388061026e565b601f19821693600080516020610e1a833981519152600052600080516020610e3a8339815191529160005b8681106103c957508360019596106103b0575b505050811b01600080516020610e1a83398151915255610291565b015160001960f88460031b161c19169055388080610395565b91926020600181928685015181550194019201610382565b600080516020610e1a833981519152600052601f820160051c600080516020610e3a833981519152019060208310610445575b601f0160051c600080516020610e3a83398151915201905b8181106104395750610253565b6000815560010161042c565b600080516020610e3a8339815191529150610414565b634e487b7160e01b600052604160045260246000fd5b0151905038806101fe565b601f19821690600080516020610dfa833981519152600052600080516020610dda8339815191529160005b8181106104f0575095836001959697106104d7575b505050811b01600080516020610dfa83398151915255610221565b015160001960f88460031b161c191690553880806104bc565b9192602060018192868b0151815501940192016104a7565b600080516020610dfa833981519152600052601f820160051c600080516020610dda8339815191520160208310610569575b601f820160051c600080516020610dda83398151915201811061055d57506101e4565b6000815560010161053a565b50600080516020610dda83398151915261053a565b68ffffffffffffffffff1981166801000000000000000117600080516020610e5a833981519152556101a2565b60405163f92ee8a960e01b8152600490fd5b90501538610171565b303b159150610169565b604083901c60ff1615915061015f565b34610335576040366003190112610335576105f9610bab565b61060a610604610bc1565b91610c8a565b9060018060a01b03166000526020526020604060002054604051908152f35b34610335576000366003190112610335576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346103355760403660031901126103355761069461068a610bab565b6024359033610cc3565b602060405160018152f35b34610335576040366003190112610335576106b8610bab565b602435906001600160a01b03907f0000000000000000000000000000000000000000000000000000000000000000821633036107b5571690811561079c577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02805490828201809211610786576000927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092558484527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00825260408420818154019055604051908152a3005b634e487b7160e01b600052601160045260246000fd5b60405163ec442f0560e01b815260006004820152602490fd5b60405163045f09b560e11b8152600490fd5b34610335576000366003190112610335576040516000600080516020610e1a83398151915280546107f781610c50565b8085529160019180831690811561087b5750600114610831575b61082d8561082181870382610bd7565b60405191829182610b62565b0390f35b60009081529250600080516020610e3a8339815191525b8284106108635750505081016020016108218261082d610811565b80546020858701810191909152909301928101610848565b86955061082d9693506020925061082194915060ff191682840152151560051b8201019293610811565b34610335576020366003190112610335576001600160a01b036108c6610bab565b166000527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006020526020604060002054604051908152f35b3461033557600036600319011261033557602060ff60005416604051908152f35b3461033557606036600319011261033557610938610bab565b610940610bc1565b6044359061094d83610c8a565b3360005260205260406000205492600019840361096f575b6106949350610cc3565b8284106109de576001600160a01b038116156109c55733156109ac57826106949461099983610c8a565b3360005260205203604060002055610965565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b346103355760003660031901126103355760207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254604051908152f35b3461033557604036600319011261033557610a5a610bab565b6024359033156109c5576001600160a01b03169081156109ac57610a7d33610c8a565b82600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610335576000366003190112610335576000600080516020610dfa8339815191528054610aef81610c50565b8085529160019180831690811561087b5750600114610b185761082d8561082181870382610bd7565b60009081529250600080516020610dda8339815191525b828410610b4a5750505081016020016108218261082d610811565b80546020858701810191909152909301928101610b2f565b6020808252825181830181905290939260005b828110610b9757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610b75565b600435906001600160a01b038216820361033557565b602435906001600160a01b038216820361033557565b90601f8019910116810190811067ffffffffffffffff82111761045b57604052565b81601f820112156103355780359067ffffffffffffffff821161045b5760405192610c2e601f8401601f191660200185610bd7565b8284526020838301011161033557816000926020809301838601378301015290565b90600182811c92168015610c80575b6020831014610c6a57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610c5f565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b916001600160a01b03808416928315610d91571692831561079c576000908382527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0080602052604083205491848310610d5e575082847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef959360409388602097528652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b0391909116600482015260248101929092525060448101839052606490fd5b604051634b637e8f60e11b815260006004820152602490fd5b60ff600080516020610e5a8339815191525460401c1615610dc757565b604051631afcd79f60e31b8152600490fdfe2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0446a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aaf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220157000dd405768ae35028bf1cd0ee14ca3563807449faf1c718f22cb9342c96264736f6c63430008140033000000000000000000000000501ee2d4aa611c906f785e10cc868e145183fce4