[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "address", "name": "_saleContract", "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" }, { "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": "saleContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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" } ]
608060405234801561000f575f80fd5b50604051610cbf380380610cbf83398101604081905261002e91610296565b8383600361003c83826103a7565b50600461004982826103a7565b5050600580546001600160a01b0319166001600160a01b0384161790555061008d81610073601290565b61007e90600a61055a565b610088908561056f565b610096565b50505050610599565b6001600160a01b0382166100c45760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b6100cf5f83836100d3565b5050565b6001600160a01b0383166100fd578060025f8282546100f29190610586565b9091555061016d9050565b6001600160a01b0383165f908152602081905260409020548181101561014f5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100bb565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610189576002805482900390556101a7565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101ec91815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261021c575f80fd5b81516001600160401b03811115610235576102356101f9565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610263576102636101f9565b60405281815283820160200185101561027a575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f805f80608085870312156102a9575f80fd5b84516001600160401b038111156102be575f80fd5b6102ca8782880161020d565b602087015190955090506001600160401b038111156102e7575f80fd5b6102f38782880161020d565b60408701516060880151919550935090506001600160a01b0381168114610318575f80fd5b939692955090935050565b600181811c9082168061033757607f821691505b60208210810361035557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103a257805f5260205f20601f840160051c810160208510156103805750805b601f840160051c820191505b8181101561039f575f815560010161038c565b50505b505050565b81516001600160401b038111156103c0576103c06101f9565b6103d4816103ce8454610323565b8461035b565b6020601f821160018114610406575f83156103ef5750848201515b5f19600385901b1c1916600184901b17845561039f565b5f84815260208120601f198516915b828110156104355787850151825560209485019460019092019101610415565b508482101561045257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156104b05780850481111561049457610494610461565b60018416156104a257908102905b60019390931c928002610479565b935093915050565b5f826104c657506001610554565b816104d257505f610554565b81600181146104e857600281146104f25761050e565b6001915050610554565b60ff84111561050357610503610461565b50506001821b610554565b5060208310610133831016604e8410600b8410161715610531575081810a610554565b61053d5f198484610475565b805f190482111561055057610550610461565b0290505b92915050565b5f61056860ff8416836104b8565b9392505050565b808202811582820484141761055457610554610461565b8082018082111561055457610554610461565b610719806105a65f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c806370a082311161006357806370a082311461011457806395d89b411461013c578063a9059cbb14610144578063daf6ca3014610157578063dd62ed3e14610182575f80fd5b806306fdde031461009f578063095ea7b3146100bd57806318160ddd146100e057806323b872dd146100f2578063313ce56714610105575b5f80fd5b6100a76101ba565b6040516100b49190610589565b60405180910390f35b6100d06100cb3660046105d9565b61024a565b60405190151581526020016100b4565b6002545b6040519081526020016100b4565b6100d0610100366004610601565b610263565b604051601281526020016100b4565b6100e461012236600461063b565b6001600160a01b03165f9081526020819052604090205490565b6100a7610286565b6100d06101523660046105d9565b610295565b60055461016a906001600160a01b031681565b6040516001600160a01b0390911681526020016100b4565b6100e461019036600461065b565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101c99061068c565b80601f01602080910402602001604051908101604052809291908181526020018280546101f59061068c565b80156102405780601f1061021757610100808354040283529160200191610240565b820191905f5260205f20905b81548152906001019060200180831161022357829003601f168201915b5050505050905090565b5f336102578185856102a2565b60019150505b92915050565b5f336102708582856102b4565b61027b858585610334565b506001949350505050565b6060600480546101c99061068c565b5f33610257818585610334565b6102af8383836001610391565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461032e578181101561032057604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61032e84848484035f610391565b50505050565b6001600160a01b03831661035d57604051634b637e8f60e11b81525f6004820152602401610317565b6001600160a01b0382166103865760405163ec442f0560e01b81525f6004820152602401610317565b6102af838383610463565b6001600160a01b0384166103ba5760405163e602df0560e01b81525f6004820152602401610317565b6001600160a01b0383166103e357604051634a1406b160e11b81525f6004820152602401610317565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561032e57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161045591815260200190565b60405180910390a350505050565b6001600160a01b03831661048d578060025f82825461048291906106c4565b909155506104fd9050565b6001600160a01b0383165f90815260208190526040902054818110156104df5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610317565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661051957600280548290039055610537565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161057c91815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146105d4575f80fd5b919050565b5f80604083850312156105ea575f80fd5b6105f3836105be565b946020939093013593505050565b5f805f60608486031215610613575f80fd5b61061c846105be565b925061062a602085016105be565b929592945050506040919091013590565b5f6020828403121561064b575f80fd5b610654826105be565b9392505050565b5f806040838503121561066c575f80fd5b610675836105be565b9150610683602084016105be565b90509250929050565b600181811c908216806106a057607f821691505b6020821081036106be57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561025d57634e487b7160e01b5f52601160045260245ffdfea26469706673582212209be8ed2369d484737852b85ff8c30872d00568fa330698806cef123c3a3588cd64736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000044cdf56edb64fb6fb5cea8503c8367a21325d2c300000000000000000000000000000000000000000000000000000000000000046461726b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000046461726b00000000000000000000000000000000000000000000000000000000