AuthorityMock.sol 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.20;
  3. import {IAccessManaged} from "../access/manager/IAccessManaged.sol";
  4. import {IAuthority} from "../access/manager/IAuthority.sol";
  5. contract NotAuthorityMock is IAuthority {
  6. function canCall(address /* caller */, address /* target */, bytes4 /* selector */) external pure returns (bool) {
  7. revert("AuthorityNoDelayMock: not implemented");
  8. }
  9. }
  10. contract AuthorityNoDelayMock is IAuthority {
  11. bool private _immediate;
  12. function canCall(
  13. address /* caller */,
  14. address /* target */,
  15. bytes4 /* selector */
  16. ) external view returns (bool immediate) {
  17. return _immediate;
  18. }
  19. function _setImmediate(bool immediate) external {
  20. _immediate = immediate;
  21. }
  22. }
  23. contract AuthorityDelayMock {
  24. bool private _immediate;
  25. uint256 private _delay;
  26. function canCall(
  27. address /* caller */,
  28. address /* target */,
  29. bytes4 /* selector */
  30. ) external view returns (bool immediate, uint256 delay) {
  31. return (_immediate, _delay);
  32. }
  33. function _setImmediate(bool immediate) external {
  34. _immediate = immediate;
  35. }
  36. function _setDelay(uint256 delay) external {
  37. _delay = delay;
  38. }
  39. }
  40. contract AuthorityNoResponse {
  41. function canCall(address /* caller */, address /* target */, bytes4 /* selector */) external view {}
  42. }
  43. contract AuthorityObserveIsConsuming {
  44. event ConsumeScheduledOpCalled(address caller, bytes data, bytes4 isConsuming);
  45. function canCall(
  46. address /* caller */,
  47. address /* target */,
  48. bytes4 /* selector */
  49. ) external pure returns (bool immediate, uint32 delay) {
  50. return (false, 1);
  51. }
  52. function consumeScheduledOp(address caller, bytes memory data) public {
  53. emit ConsumeScheduledOpCalled(caller, data, IAccessManaged(msg.sender).isConsumingScheduledOp());
  54. }
  55. }