ERC20PermitNoRevertMock.sol 869 B

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