[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "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": [], "name": "TOTAL_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": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "metadataJSON", "type": "string" } ], "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": "tokenURI", "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" } ]
608060405234801561000f575f80fd5b5060408051602080820183525f808352835191820190935291825290600361003783826100e4565b50600461004482826100e4565b5050506101a3565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061007457607f821691505b60208210810361009257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156100df57805f5260205f20601f840160051c810160208510156100bd5750805b601f840160051c820191505b818110156100dc575f81556001016100c9565b50505b505050565b81516001600160401b038111156100fd576100fd61004c565b6101118161010b8454610060565b84610098565b602080601f831160018114610144575f841561012d5750858301515b5f19600386901b1c1916600185901b17855561019b565b5f85815260208120601f198616915b8281101561017257888601518255948401946001909101908401610153565b508582101561018f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610e17806101b05f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806370a082311161008857806395d89b411161006357806395d89b41146101c8578063a6487c53146101d0578063a9059cbb146101e3578063dd62ed3e146101f6575f80fd5b806370a082311461017b57806379cc6790146101a3578063902d55a5146101b6575f80fd5b806323b872dd116100c357806323b872dd1461013c578063313ce5671461014f5780633c130d901461015e57806342966c6814610166575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd1461012a575b5f80fd5b6100f161022e565b6040516100fe919061090e565b60405180910390f35b61011a61011536600461095b565b6102be565b60405190151581526020016100fe565b6002545b6040519081526020016100fe565b61011a61014a366004610983565b6102d7565b604051601281526020016100fe565b6100f16102fa565b6101796101743660046109bc565b610322565b005b61012e6101893660046109d3565b6001600160a01b03165f9081526020819052604090205490565b6101796101b136600461095b565b61032e565b61012e6a084595161401484a00000081565b6100f161033c565b6101796101de366004610a90565b61034b565b61011a6101f136600461095b565b610390565b61012e610204366004610b12565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606006805461023d90610b43565b80601f016020809104026020016040519081016040528092919081815260200182805461026990610b43565b80156102b45780601f1061028b576101008083540402835291602001916102b4565b820191905f5260205f20905b81548152906001019060200180831161029757829003601f168201915b5050505050905090565b5f336102cb81858561039d565b60019150505b92915050565b5f336102e48582856103aa565b6102ef85858561042a565b506001949350505050565b6060600560405160200161030e9190610b7b565b604051602081830303815290604052905090565b61032b81610487565b50565b6103388282610491565b5050565b60606007805461023d90610b43565b6103536104a6565b600661035f8482610c69565b50600761036c8382610c69565b50610382336a084595161401484a0000006104f6565b61038b8161052a565b505050565b5f336102cb81858561042a565b61038b838383600161055f565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610424578181101561041657604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61042484848484035f61055f565b50505050565b6001600160a01b03831661045357604051634b637e8f60e11b81525f600482015260240161040d565b6001600160a01b03821661047c5760405163ec442f0560e01b81525f600482015260240161040d565b61038b838383610631565b61032b3382610757565b61049c8233836103aa565b6103388282610757565b7f3beb386fe2857f1f6791d69513a979a773d6f576788843cc501ba63d213caf04805460ff16156104e95760405162dc149f60e41b815260040160405180910390fd5b805460ff19166001179055565b6001600160a01b03821661051f5760405163ec442f0560e01b81525f600482015260240161040d565b6103385f8383610631565b6105528160405160200161053e9190610d29565b60405160208183030381529060405261078b565b6005906103389082610c69565b6001600160a01b0384166105885760405163e602df0560e01b81525f600482015260240161040d565b6001600160a01b0383166105b157604051634a1406b160e11b81525f600482015260240161040d565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561042457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161062391815260200190565b60405180910390a350505050565b6001600160a01b03831661065b578060025f8282546106509190610d58565b909155506106cb9050565b6001600160a01b0383165f90815260208190526040902054818110156106ad5760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161040d565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166106e757600280548290039055610705565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161074a91815260200190565b60405180910390a3505050565b6001600160a01b03821661078057604051634b637e8f60e11b81525f600482015260240161040d565b610338825f83610631565b606081515f036107a857505060408051602081019091525f815290565b5f604051806060016040528060408152602001610da26040913990505f6003845160026107d59190610d58565b6107df9190610d6b565b6107ea906004610d8a565b90505f6107f8826020610d58565b67ffffffffffffffff811115610810576108106109f3565b6040519080825280601f01601f19166020018201604052801561083a576020820181803683370190505b509050818152600183018586518101602084015b818310156108a85760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b9382019390935260040161084e565b6003895106600181146108c257600281146108d3576108de565b613d3d60f01b6001198301526108de565b603d60f81b5f198301525b509398975050505050505050565b5f5b838110156109065781810151838201526020016108ee565b50505f910152565b602081525f825180602084015261092c8160408501602087016108ec565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610956575f80fd5b919050565b5f806040838503121561096c575f80fd5b61097583610940565b946020939093013593505050565b5f805f60608486031215610995575f80fd5b61099e84610940565b92506109ac60208501610940565b9150604084013590509250925092565b5f602082840312156109cc575f80fd5b5035919050565b5f602082840312156109e3575f80fd5b6109ec82610940565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a16575f80fd5b813567ffffffffffffffff80821115610a3157610a316109f3565b604051601f8301601f19908116603f01168101908282118183101715610a5957610a596109f3565b81604052838152866020858801011115610a71575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f60608486031215610aa2575f80fd5b833567ffffffffffffffff80821115610ab9575f80fd5b610ac587838801610a07565b94506020860135915080821115610ada575f80fd5b610ae687838801610a07565b93506040860135915080821115610afb575f80fd5b50610b0886828701610a07565b9150509250925092565b5f8060408385031215610b23575f80fd5b610b2c83610940565b9150610b3a60208401610940565b90509250929050565b600181811c90821680610b5757607f821691505b602082108103610b7557634e487b7160e01b5f52602260045260245ffd5b50919050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081525f601d5f8454610bad81610b43565b60018281168015610bc55760018114610be057610c11565b60ff198416601d890152601d83151584028901019450610c11565b885f526020805f205f5b85811015610c055781548b82018a0152908401908201610bea565b505050601d8389010194505b5092979650505050505050565b601f82111561038b57805f5260205f20601f840160051c81016020851015610c435750805b601f840160051c820191505b81811015610c62575f8155600101610c4f565b5050505050565b815167ffffffffffffffff811115610c8357610c836109f3565b610c9781610c918454610b43565b84610c1e565b602080601f831160018114610cca575f8415610cb35750858301515b5f19600386901b1c1916600185901b178555610d21565b5f85815260208120601f198616915b82811015610cf857888601518255948401946001909101908401610cd9565b5085821015610d1557878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f8251610d3a8184602087016108ec565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156102d1576102d1610d44565b5f82610d8557634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176102d1576102d1610d4456fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220f0ae9ddc2cb27416c155024410b2235a8355a4daefa36459ce4efded9910c68164736f6c63430008190033