AccountHarness.sol 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.26;
  3. import {AccountERC7702WithModulesMock} from "../patched/mocks/account/AccountMock.sol";
  4. import {EIP712} from "../patched/utils/cryptography/EIP712.sol";
  5. import {EnumerableSet} from "../patched/utils/structs/EnumerableSet.sol";
  6. contract AccountHarness is AccountERC7702WithModulesMock {
  7. using EnumerableSet for EnumerableSet.AddressSet;
  8. constructor(string memory name, string memory version) EIP712(name, version) {}
  9. function getFallbackHandler(bytes4 selector) external view returns (address) {
  10. return _fallbackHandler(selector);
  11. }
  12. function getDataSelector(bytes memory data) external pure returns (bytes4) {
  13. return bytes4(data);
  14. }
  15. function _validatorContains(address module) external view returns (bool) {
  16. return _validators.contains(module);
  17. }
  18. function _validatorLength() external view returns (uint256) {
  19. return _validators.length();
  20. }
  21. function _validatorAt(uint256 index) external view returns (address) {
  22. return _validators.at(index);
  23. }
  24. function _validatorAtFull(uint256 index) external view returns (bytes32) {
  25. return _validators._inner._values[index];
  26. }
  27. function _validatorPositionOf(address module) external view returns (uint256) {
  28. return _validators._inner._positions[bytes32(uint256(uint160(module)))];
  29. }
  30. function _executorContains(address module) external view returns (bool) {
  31. return _executors.contains(module);
  32. }
  33. function _executorLength() external view returns (uint256) {
  34. return _executors.length();
  35. }
  36. function _executorAt(uint256 index) external view returns (address) {
  37. return _executors.at(index);
  38. }
  39. function _executorAtFull(uint256 index) external view returns (bytes32) {
  40. return _executors._inner._values[index];
  41. }
  42. function _executorPositionOf(address module) external view returns (uint256) {
  43. return _executors._inner._positions[bytes32(uint256(uint160(module)))];
  44. }
  45. }