Skip to content

Commit edc3f66

Browse files
committed
feat: adding new facet with the set setRoleApprovalForAll function and deleted from interfaces
1 parent 37cc65e commit edc3f66

File tree

6 files changed

+23
-19
lines changed

6 files changed

+23
-19
lines changed

contracts/Aavegotchi/facets/ItemsRolesRegistryFacet.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {IEventHandlerFacet} from "../WearableDiamond/interfaces/IEventHandlerFac
1616
import {LibERC1155} from "../../shared/libraries/LibERC1155.sol";
1717
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
1818
import {LibItemsEvents} from "../libraries/LibItemsEvents.sol";
19+
import {RoleApprovalFacet} from "./RoleApprovalFacet.sol";
1920

2021
contract ItemsRolesRegistryFacet is Modifiers, IERC7589, ERC1155Holder {
2122
using EnumerableSet for EnumerableSet.UintSet;
@@ -119,7 +120,7 @@ contract ItemsRolesRegistryFacet is Modifiers, IERC7589, ERC1155Holder {
119120
override
120121
validGrantRoleData(_expirationDate, _role)
121122
onlyOwnerOrApproved(s.itemRolesDepositInfo[_depositId].deposit.grantor, s.itemRolesDepositInfo[_depositId].deposit.tokenAddress)
122-
{
123+
{
123124
_grantOrUpdateRole(_depositId, _role, _grantee, _expirationDate, _revocable, _data);
124125
}
125126

@@ -182,9 +183,8 @@ contract ItemsRolesRegistryFacet is Modifiers, IERC7589, ERC1155Holder {
182183
/// @param _tokenAddress The token address.
183184
/// @param _operator The user approved to grant and revoke roles.
184185
/// @param _isApproved The approval status.
185-
function setRoleApprovalForAll(address _tokenAddress, address _operator, bool _isApproved) external override {
186-
s.itemsRoleApprovals[LibMeta.msgSender()][_tokenAddress][_operator] = _isApproved;
187-
emit RoleApprovalForAll(_tokenAddress, _operator, _isApproved);
186+
function setRoleApprovalForAll(address _tokenAddress, address _operator, bool _isApproved) external {
187+
RoleApprovalFacet(address(this)).setRoleApprovalForAll(_tokenAddress, _operator, _isApproved);
188188
}
189189

190190
/** View Functions **/

contracts/Aavegotchi/facets/ParcelRolesRegistryFacet.sol

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import {Modifiers, RoleData} from "../libraries/LibAppStorage.sol";
1111
import {LibItems} from "../libraries/LibItems.sol";
1212
import {LibSharedMarketplace} from "../libraries/LibSharedMarketplace.sol";
1313

14+
import {RoleApprovalFacet} from "./RoleApprovalFacet.sol";
15+
1416
contract ParcelRolesRegistryFacet is Modifiers, IERC7432 {
1517
uint256 public constant MAX_EXPIRATION_DATE = 90 days;
1618

@@ -131,9 +133,8 @@ contract ParcelRolesRegistryFacet is Modifiers, IERC7432 {
131133
emit TokenUnlocked(originalOwner, _tokenAddress, _tokenId);
132134
}
133135

134-
function setRoleApprovalForAll(address _tokenAddress, address _operator, bool _approved) external override {
135-
s.itemsRoleApprovals[msg.sender][_tokenAddress][_operator] = _approved;
136-
emit RoleApprovalForAll(_tokenAddress, _operator, _approved);
136+
function setRoleApprovalForAll(address _tokenAddress, address _operator, bool _isApproved) external {
137+
RoleApprovalFacet(address(this)).setRoleApprovalForAll(_tokenAddress, _operator, _isApproved);
137138
}
138139

139140
/** View Functions **/
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity 0.8.1;
3+
4+
import {LibMeta} from "../../shared/libraries/LibMeta.sol";
5+
import {Modifiers} from "../libraries/LibAppStorage.sol";
6+
7+
contract RoleApprovalFacet is Modifiers {
8+
event RoleApprovalForAll(address indexed tokenAddress, address indexed operator, bool indexed isApproved);
9+
10+
function setRoleApprovalForAll(address _tokenAddress, address _operator, bool _approved) external {
11+
s.itemsRoleApprovals[LibMeta.msgSender()][_tokenAddress][_operator] = _approved;
12+
emit RoleApprovalForAll(_tokenAddress, _operator, _approved);
13+
}
14+
}

contracts/Aavegotchi/libraries/LibAppStorage.sol

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ struct AppStorage {
375375
// depositId => userRoleDepositInfo
376376
mapping(uint256 => ItemRolesInfo) itemRolesDepositInfo;
377377
// grantor => tokenAddress => operator => isApproved
378+
// Is used for more than one NFT type.
378379
mapping(address => mapping(address => mapping(address => bool))) itemsRoleApprovals;
379380
// counter to generate depositIds for each new deposit created in Items Roles Registry
380381
uint256 itemsDepositIdCounter;

contracts/shared/interfaces/IERC7432.sol

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,6 @@ interface IERC7432 is IERC165 {
8282
/// @param _tokenId The token identifier.
8383
function unlockToken(address _tokenAddress, uint256 _tokenId) external;
8484

85-
/// @notice Approves operator to grant and revoke roles on behalf of another user.
86-
/// @param _tokenAddress The token address.
87-
/// @param _operator The user approved to grant and revoke roles.
88-
/// @param _approved The approval status.
89-
function setRoleApprovalForAll(address _tokenAddress, address _operator, bool _approved) external;
90-
9185
/** View Functions **/
9286

9387
/// @notice Retrieves the owner of NFT.

contracts/shared/interfaces/IERC7589.sol

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,6 @@ interface IERC7589 {
104104
/// @param _commitmentId The commitment identifier.
105105
function releaseTokens(uint256 _commitmentId) external;
106106

107-
/// @notice Approves operator to grant and revoke roles on behalf of another user.
108-
/// @param _tokenAddress The token address.
109-
/// @param _operator The user approved to grant and revoke roles.
110-
/// @param _approved The approval status.
111-
function setRoleApprovalForAll(address _tokenAddress, address _operator, bool _approved) external;
112-
113107
/** View Functions **/
114108

115109
/// @notice Returns the owner of the commitment (grantor).

0 commit comments

Comments
 (0)