[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "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" }, { "inputs": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "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": [], "name": "EIP712DomainChanged", "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": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "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": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellTaxPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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" } ]
610160604052600880546001600160a01b03191673edd296b647551f7fc7759c4f2da4efbd9bd3775c179055348015610036575f80fd5b506040518060400160405280600a815260200169135a5b995c9d9853dddb60b21b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600a815260200169135a5b995c9d9853dddb60b21b81525060405180604001604052806005815260200164091353d5d360da1b81525081600390816100c5919061041a565b5060046100d2828261041a565b506100e2915083905060056101b0565b610120526100f18160066101b0565b61014052815160208084019190912060e052815190820120610100524660a05261017d60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506101ab336101976012600a6105cb565b6101a69064174876e8006105e0565b6101e2565b610662565b5f6020835110156101cb576101c48361021f565b90506101dc565b816101d6848261041a565b5060ff90505b92915050565b6001600160a01b0382166102105760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b61021b5f838361025c565b5050565b5f80829050601f81511115610249578260405163305a27a960e01b815260040161020791906105f7565b80516102548261062c565b179392505050565b6001600160a01b038316610286578060025f82825461027b919061064f565b909155506102f69050565b6001600160a01b0383165f90815260208190526040902054818110156102d85760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610207565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661031257600280548290039055610330565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161037591815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806103aa57607f821691505b6020821081036103c857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561041557805f5260205f20601f840160051c810160208510156103f35750805b601f840160051c820191505b81811015610412575f81556001016103ff565b50505b505050565b81516001600160401b0381111561043357610433610382565b610447816104418454610396565b846103ce565b6020601f821160018114610479575f83156104625750848201515b5f19600385901b1c1916600184901b178455610412565b5f84815260208120601f198516915b828110156104a85787850151825560209485019460019092019101610488565b50848210156104c557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561052357808504811115610507576105076104d4565b600184161561051557908102905b60019390931c9280026104ec565b935093915050565b5f82610539575060016101dc565b8161054557505f6101dc565b816001811461055b576002811461056557610581565b60019150506101dc565b60ff841115610576576105766104d4565b50506001821b6101dc565b5060208310610133831016604e8410600b84101617156105a4575081810a6101dc565b6105b05f1984846104e8565b805f19048211156105c3576105c36104d4565b029392505050565b5f6105d960ff84168361052b565b9392505050565b80820281158282048414176101dc576101dc6104d4565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b805160208083015191908110156103c8575f1960209190910360031b1b16919050565b808201808211156101dc576101dc6104d4565b60805160a05160c05160e051610100516101205161014051610ef26106b35f395f61073901525f61070c01525f6106b501525f61068d01525f6105e801525f61061201525f61063c0152610ef25ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c806370a08231116100935780639e7d8d1d116100635780639e7d8d1d146101fa578063a9059cbb14610202578063d505accf14610215578063dd62ed3e1461022a575f80fd5b806370a082311461019c5780637ecebe00146101c457806384b0196e146101d757806395d89b41146101f2575f80fd5b806323b872dd116100ce57806323b872dd146101475780632dc0562d1461015a578063313ce567146101855780633644e51514610194575f80fd5b806306fdde03146100f4578063095ea7b31461011257806318160ddd14610135575b5f80fd5b6100fc610262565b6040516101099190610c6e565b60405180910390f35b610125610120366004610ca2565b6102f2565b6040519015158152602001610109565b6002545b604051908152602001610109565b610125610155366004610cca565b61030b565b60085461016d906001600160a01b031681565b6040516001600160a01b039091168152602001610109565b60405160128152602001610109565b61013961032e565b6101396101aa366004610d04565b6001600160a01b03165f9081526020819052604090205490565b6101396101d2366004610d04565b61033c565b6101df610359565b6040516101099796959493929190610d1d565b6100fc61039b565b610139601e81565b610125610210366004610ca2565b6103aa565b610228610223366004610db3565b6103b7565b005b610139610238366004610e20565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461027190610e51565b80601f016020809104026020016040519081016040528092919081815260200182805461029d90610e51565b80156102e85780601f106102bf576101008083540402835291602001916102e8565b820191905f5260205f20905b8154815290600101906020018083116102cb57829003601f168201915b5050505050905090565b5f336102ff8185856104f2565b60019150505b92915050565b5f33610318858285610504565b61032385858561057f565b506001949350505050565b5f6103376105dc565b905090565b6001600160a01b0381165f90815260076020526040812054610305565b5f6060805f805f606061036a610705565b610372610732565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60606004805461027190610e51565b5f336102ff81858561057f565b834211156103e05760405163313c898160e11b8152600481018590526024015b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888861042b8c6001600160a01b03165f90815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f6104858261075f565b90505f6104948287878761078b565b9050896001600160a01b0316816001600160a01b0316146104db576040516325c0072360e11b81526001600160a01b0380831660048301528b1660248201526044016103d7565b6104e68a8a8a6104f2565b50505050505050505050565b6104ff83838360016107b7565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610579578181101561056b57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016103d7565b61057984848484035f6107b7565b50505050565b6001600160a01b0383166105a857604051634b637e8f60e11b81525f60048201526024016103d7565b6001600160a01b0382166105d15760405163ec442f0560e01b81525f60048201526024016103d7565b6104ff838383610889565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561063457507f000000000000000000000000000000000000000000000000000000000000000046145b1561065e57507f000000000000000000000000000000000000000000000000000000000000000090565b610337604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60606103377f000000000000000000000000000000000000000000000000000000000000000060056109af565b60606103377f000000000000000000000000000000000000000000000000000000000000000060066109af565b5f61030561076b6105dc565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f8061079b88888888610a58565b9250925092506107ab8282610b20565b50909695505050505050565b6001600160a01b0384166107e05760405163e602df0560e01b81525f60048201526024016103d7565b6001600160a01b03831661080957604051634a1406b160e11b81525f60048201526024016103d7565b6001600160a01b038085165f908152600160209081526040808320938716835292905220829055801561057957826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161087b91815260200190565b60405180910390a350505050565b6001600160a01b0383166108b3578060025f8282546108a89190610e89565b909155506109239050565b6001600160a01b0383165f90815260208190526040902054818110156109055760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016103d7565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661093f5760028054829003905561095d565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109a291815260200190565b60405180910390a3505050565b606060ff83146109c9576109c283610bdc565b9050610305565b8180546109d590610e51565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0190610e51565b8015610a4c5780601f10610a2357610100808354040283529160200191610a4c565b820191905f5260205f20905b815481529060010190602001808311610a2f57829003601f168201915b50505050509050610305565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610a9157505f91506003905082610b16565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610ae2573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116610b0d57505f925060019150829050610b16565b92505f91508190505b9450945094915050565b5f826003811115610b3357610b33610ea8565b03610b3c575050565b6001826003811115610b5057610b50610ea8565b03610b6e5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610b8257610b82610ea8565b03610ba35760405163fce698f760e01b8152600481018290526024016103d7565b6003826003811115610bb757610bb7610ea8565b03610bd8576040516335e2f38360e21b8152600481018290526024016103d7565b5050565b60605f610be883610c19565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f60ff8216601f81111561030557604051632cd44ac360e21b815260040160405180910390fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610c806020830184610c40565b9392505050565b80356001600160a01b0381168114610c9d575f80fd5b919050565b5f8060408385031215610cb3575f80fd5b610cbc83610c87565b946020939093013593505050565b5f805f60608486031215610cdc575f80fd5b610ce584610c87565b9250610cf360208501610c87565b929592945050506040919091013590565b5f60208284031215610d14575f80fd5b610c8082610c87565b60ff60f81b8816815260e060208201525f610d3b60e0830189610c40565b8281036040840152610d4d8189610c40565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015610da2578351835260209384019390920191600101610d84565b50909b9a5050505050505050505050565b5f805f805f805f60e0888a031215610dc9575f80fd5b610dd288610c87565b9650610de060208901610c87565b95506040880135945060608801359350608088013560ff81168114610e03575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215610e31575f80fd5b610e3a83610c87565b9150610e4860208401610c87565b90509250929050565b600181811c90821680610e6557607f821691505b602082108103610e8357634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561030557634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52602160045260245ffdfea264697066735822122098a470f7bd0982627040aa021ba1607730bcd8cc67419f6560e6ecfa5885bb8b64736f6c634300081a0033