ERC20PermitNoRevertMock.sol 845 B

1234567891011121314151617181920212223242526272829303132333435
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.20;
  3. import {ERC20Permit} from "../../token/ERC20/extensions/ERC20Permit.sol";
  4. abstract contract ERC20PermitNoRevertMock is ERC20Permit {
  5. function permitThatMayRevert(
  6. address owner,
  7. address spender,
  8. uint256 value,
  9. uint256 deadline,
  10. uint8 v,
  11. bytes32 r,
  12. bytes32 s
  13. ) public virtual {
  14. super.permit(owner, spender, value, deadline, v, r, s);
  15. }
  16. function permit(
  17. address owner,
  18. address spender,
  19. uint256 value,
  20. uint256 deadline,
  21. uint8 v,
  22. bytes32 r,
  23. bytes32 s
  24. ) public virtual override {
  25. try this.permitThatMayRevert(owner, spender, value, deadline, v, r, s) {
  26. // do nothing
  27. } catch {
  28. // do nothing
  29. }
  30. }
  31. }