@@ -3,18 +3,17 @@ pragma solidity ^0.8.19;
3
3
4
4
import {IOracle} from '../interfaces/IOracle.sol ' ;
5
5
6
+ import {IAccessModule} from '../interfaces/modules/access/IAccessModule.sol ' ;
6
7
import {IDisputeModule} from '../interfaces/modules/dispute/IDisputeModule.sol ' ;
7
-
8
- import {IAccessControlModule} from '../interfaces/modules/accessControl/IAccessControlModule.sol ' ;
9
8
import {IFinalityModule} from '../interfaces/modules/finality/IFinalityModule.sol ' ;
10
9
import {IRequestModule} from '../interfaces/modules/request/IRequestModule.sol ' ;
11
10
import {IResolutionModule} from '../interfaces/modules/resolution/IResolutionModule.sol ' ;
12
11
import {IResponseModule} from '../interfaces/modules/response/IResponseModule.sol ' ;
13
12
import {ValidatorLib} from '../libraries/ValidatorLib.sol ' ;
14
- import {AccessController } from './AccessController .sol ' ;
13
+ import {OracleAccessController } from './OracleAccessController .sol ' ;
15
14
import {OracleTypehash} from './utils/OracleTypehash.sol ' ;
16
15
17
- contract Oracle is IOracle , AccessController , OracleTypehash {
16
+ contract Oracle is IOracle , OracleAccessController , OracleTypehash {
18
17
using ValidatorLib for * ;
19
18
20
19
/// @inheritdoc IOracle
@@ -47,9 +46,6 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
47
46
/// @inheritdoc IOracle
48
47
mapping (bytes32 _requestId = > mapping (address _user = > bool _isParticipant )) public isParticipant;
49
48
50
- /// @inheritdoc IOracle
51
- mapping (address _user = > mapping (address _accessControlModule = > bool _approved )) public isAccessControlApproved;
52
-
53
49
/// @inheritdoc IOracle
54
50
uint256 public totalRequestCount;
55
51
@@ -58,18 +54,6 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
58
54
*/
59
55
mapping (bytes32 _requestId = > bytes _responseIds ) internal _responseIds;
60
56
61
- /**
62
- * @notice Modifier to check if the user approved to the access control module
63
- * @param _user The address of the user
64
- * @param _accessControlModule The access control module to check if approved
65
- */
66
- modifier isApproved (address _user , address _accessControlModule ) {
67
- if (_accessControlModule != address (0 ) && ! isAccessControlApproved[_user][_accessControlModule]) {
68
- revert Oracle_AccessControlModuleNotApproved ();
69
- }
70
- _;
71
- }
72
-
73
57
/// @inheritdoc IOracle
74
58
function getResponseIds (bytes32 _requestId ) public view returns (bytes32 [] memory _ids ) {
75
59
bytes memory _responses = _responseIds[_requestId];
@@ -111,16 +95,6 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
111
95
}
112
96
}
113
97
114
- /// @inheritdoc IOracle
115
- function setAccessControlModule (address _accessControlModule , bool _approved ) external {
116
- if (isAccessControlApproved[msg .sender ][_accessControlModule] == _approved) {
117
- revert Oracle_AccessControlModuleAlreadySet ();
118
- }
119
- isAccessControlApproved[msg .sender ][_accessControlModule] = _approved;
120
-
121
- emit AccessControlModuleSet (msg .sender , _accessControlModule, _approved);
122
- }
123
-
124
98
/// @inheritdoc IOracle
125
99
function createRequest (
126
100
Request calldata _request ,
@@ -154,8 +128,7 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
154
128
AccessControl calldata _accessControl
155
129
)
156
130
external
157
- isApproved (_accessControl.user, _request.accessControlModule)
158
- hasAccess (_request.accessControlModule, PROPOSE_TYPEHASH, abi.encode (_request, _response), _accessControl)
131
+ hasAccess (_request.accessModule, PROPOSE_TYPEHASH, abi.encode (_request, _response), _accessControl)
159
132
returns (bytes32 _responseId )
160
133
{
161
134
_responseId = ValidatorLib._validateResponse (_request, _response);
@@ -195,8 +168,7 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
195
168
AccessControl calldata _accessControl
196
169
)
197
170
external
198
- isApproved (_accessControl.user, _request.accessControlModule)
199
- hasAccess (_request.accessControlModule, DISPUTE_TYPEHASH, abi.encode (_request, _response, _dispute), _accessControl)
171
+ hasAccess (_request.accessModule, DISPUTE_TYPEHASH, abi.encode (_request, _response, _dispute), _accessControl)
200
172
returns (bytes32 _disputeId )
201
173
{
202
174
bytes32 _responseId;
@@ -241,8 +213,7 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
241
213
AccessControl calldata _accessControl
242
214
)
243
215
external
244
- isApproved (_accessControl.user, _request.accessControlModule)
245
- hasAccess (_request.accessControlModule, ESCALATE_TYPEHASH, abi.encode (_request, _response, _dispute), _accessControl)
216
+ hasAccess (_request.accessModule, ESCALATE_TYPEHASH, abi.encode (_request, _response, _dispute), _accessControl)
246
217
{
247
218
(bytes32 _responseId , bytes32 _disputeId ) = ValidatorLib._validateResponseAndDispute (_request, _response, _dispute);
248
219
@@ -280,8 +251,7 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
280
251
AccessControl calldata _accessControl
281
252
)
282
253
external
283
- isApproved (_accessControl.user, _request.accessControlModule)
284
- hasAccess (_request.accessControlModule, RESOLVE_TYPEHASH, abi.encode (_request, _response, _dispute), _accessControl)
254
+ hasAccess (_request.accessModule, RESOLVE_TYPEHASH, abi.encode (_request, _response, _dispute), _accessControl)
285
255
{
286
256
(bytes32 _responseId , bytes32 _disputeId ) = ValidatorLib._validateResponseAndDispute (_request, _response, _dispute);
287
257
@@ -346,11 +316,7 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
346
316
IOracle.Request calldata _request ,
347
317
IOracle.Response calldata _response ,
348
318
AccessControl calldata _accessControl
349
- )
350
- external
351
- isApproved (_accessControl.user, _request.accessControlModule)
352
- hasAccess (_request.accessControlModule, FINALIZE_TYPEHASH, abi.encode (_request, _response), _accessControl)
353
- {
319
+ ) external hasAccess (_request.accessModule, FINALIZE_TYPEHASH, abi.encode (_request, _response), _accessControl) {
354
320
bytes32 _requestId;
355
321
bytes32 _responseId;
356
322
@@ -378,7 +344,11 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
378
344
IDisputeModule (_request.disputeModule).finalizeRequest (_request, _response, _accessControl.user);
379
345
IResponseModule (_request.responseModule).finalizeRequest (_request, _response, _accessControl.user);
380
346
IRequestModule (_request.requestModule).finalizeRequest (_request, _response, _accessControl.user);
381
- IAccessControlModule (_request.accessControlModule).finalizeRequest (_request, _response, _accessControl.user);
347
+ IAccessModule (_request.accessModule).finalizeRequest (_request, _response, _accessControl.user);
348
+
349
+ if (_request.accessModule != address (0 )) {
350
+ IAccessModule (_request.accessModule).finalizeRequest (_request, _response, _accessControl.user);
351
+ }
382
352
383
353
emit OracleRequestFinalized (_requestId, _responseId);
384
354
}
@@ -460,8 +430,7 @@ contract Oracle is IOracle, AccessController, OracleTypehash {
460
430
AccessControl calldata _accessControl
461
431
)
462
432
internal
463
- isApproved (_accessControl.user, _request.accessControlModule)
464
- hasAccess (_request.accessControlModule, CREATE_TYPEHASH, abi.encode (_request), _accessControl)
433
+ hasAccess (_request.accessModule, CREATE_TYPEHASH, abi.encode (_request), _accessControl)
465
434
returns (bytes32 _requestId )
466
435
{
467
436
uint256 _requestNonce = totalRequestCount++ ;
0 commit comments