Skip to content

Commit 01ae0ac

Browse files
authored
refactor: remove internal decodeRequestData (#56)
# 🤖 Linear Closes OPO-169
2 parents 88adebf + 4a8f8e9 commit 01ae0ac

9 files changed

+29
-117
lines changed

solidity/contracts/modules/ArbitratorModule.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ contract ArbitratorModule is Module, IArbitratorModule {
1919
}
2020

2121
// get the arbitrator address for a dispute (the same arbitrator is fixed for a given request)
22-
function decodeRequestData(bytes32 _requestId) external view returns (address _arbitrator) {
22+
function decodeRequestData(bytes32 _requestId) public view returns (address _arbitrator) {
2323
// Get the arbitrator address associated with the request id
2424
_arbitrator = abi.decode(requestData[_requestId], (address));
2525
}

solidity/contracts/modules/BondEscalationModule.sol

+8-28
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ contract BondEscalationModule is Module, IBondEscalationModule {
3939

4040
if (_dispute.requestId == bytes32(0)) revert BondEscalationModule_DisputeDoesNotExist();
4141

42-
(,,,, uint256 _bondEscalationDeadline, uint256 _tyingBuffer) = _decodeRequestData(requestData[_dispute.requestId]);
42+
(,,,, uint256 _bondEscalationDeadline, uint256 _tyingBuffer) = decodeRequestData(_dispute.requestId);
4343

4444
// If the bond escalation deadline is not over, no dispute can be escalated
4545
if (block.timestamp <= _bondEscalationDeadline) revert BondEscalationModule_BondEscalationNotOver();
@@ -93,7 +93,7 @@ contract BondEscalationModule is Module, IBondEscalationModule {
9393
uint256 _bondSize,
9494
,
9595
uint256 _bondEscalationDeadline,
96-
) = _decodeRequestData(requestData[_requestId]);
96+
) = decodeRequestData(_requestId);
9797

9898
// if the bond escalation is not over and there's an active dispute going through it, revert
9999
if (block.timestamp <= _bondEscalationDeadline && bondEscalationStatus[_requestId] == BondEscalationStatus.Active) {
@@ -123,7 +123,7 @@ contract BondEscalationModule is Module, IBondEscalationModule {
123123

124124
function updateDisputeStatus(bytes32 _disputeId, IOracle.Dispute memory _dispute) external onlyOracle {
125125
(IBondEscalationAccounting _accountingExtension, IERC20 _bondToken, uint256 _bondSize,,,) =
126-
_decodeRequestData(requestData[_dispute.requestId]);
126+
decodeRequestData(_dispute.requestId);
127127

128128
bool _won = _dispute.status == IOracle.DisputeStatus.Won;
129129

@@ -198,7 +198,7 @@ contract BondEscalationModule is Module, IBondEscalationModule {
198198
uint256 _maxNumberOfEscalations,
199199
uint256 _bondEscalationDeadline,
200200
uint256 _tyingBuffer
201-
) = _decodeRequestData(requestData[_dispute.requestId]);
201+
) = decodeRequestData(_dispute.requestId);
202202

203203
if (_maxNumberOfEscalations == 0 || _bondSize == 0) revert BondEscalationModule_ZeroValue();
204204

@@ -262,7 +262,7 @@ contract BondEscalationModule is Module, IBondEscalationModule {
262262
uint256 _maxNumberOfEscalations,
263263
uint256 _bondEscalationDeadline,
264264
uint256 _tyingBuffer
265-
) = _decodeRequestData(requestData[_dispute.requestId]);
265+
) = decodeRequestData(_dispute.requestId);
266266

267267
if (_maxNumberOfEscalations == 0 || _bondSize == 0) revert BondEscalationModule_ZeroValue();
268268

@@ -313,7 +313,7 @@ contract BondEscalationModule is Module, IBondEscalationModule {
313313
,
314314
uint256 _bondEscalationDeadline,
315315
uint256 _tyingBuffer
316-
) = _decodeRequestData(requestData[_requestId]);
316+
) = decodeRequestData(_requestId);
317317

318318
if (block.timestamp <= _bondEscalationDeadline + _tyingBuffer) {
319319
revert BondEscalationModule_BondEscalationNotOver();
@@ -370,7 +370,7 @@ contract BondEscalationModule is Module, IBondEscalationModule {
370370
* party to tie if at the end of the initial deadline the pledgess weren't tied.
371371
*/
372372
function decodeRequestData(bytes32 _requestId)
373-
external
373+
public
374374
view
375375
returns (
376376
IBondEscalationAccounting _accountingExtension,
@@ -382,7 +382,7 @@ contract BondEscalationModule is Module, IBondEscalationModule {
382382
)
383383
{
384384
(_accountingExtension, _bondToken, _bondSize, _maxNumberOfEscalations, _bondEscalationDeadline, _tyingBuffer) =
385-
_decodeRequestData(requestData[_requestId]);
385+
abi.decode(requestData[_requestId], (IBondEscalationAccounting, IERC20, uint256, uint256, uint256, uint256));
386386
}
387387

388388
/**
@@ -430,24 +430,4 @@ contract BondEscalationModule is Module, IBondEscalationModule {
430430
}
431431
}
432432
}
433-
434-
////////////////////////////////////////////////////////////////////
435-
// Pure Functions
436-
////////////////////////////////////////////////////////////////////
437-
438-
function _decodeRequestData(bytes memory _data)
439-
internal
440-
pure
441-
returns (
442-
IBondEscalationAccounting _accountingExtension,
443-
IERC20 _bondToken,
444-
uint256 _bondSize,
445-
uint256 _maxNumberOfEscalations,
446-
uint256 _bondEscalationDeadline,
447-
uint256 _tyingBuffer
448-
)
449-
{
450-
(_accountingExtension, _bondToken, _bondSize, _maxNumberOfEscalations, _bondEscalationDeadline, _tyingBuffer) =
451-
abi.decode(_data, (IBondEscalationAccounting, IERC20, uint256, uint256, uint256, uint256));
452-
}
453433
}

solidity/contracts/modules/BondEscalationResolutionModule.sol

+1-17
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,7 @@ contract BondEscalationResolutionModule is Module, IBondEscalationResolutionModu
4040
)
4141
{
4242
(_accountingExtension, _token, _percentageDiff, _pledgeThreshold, _timeUntilDeadline, _timeToBreakInequality) =
43-
_decodeRequestData(requestData[_requestId]);
44-
}
45-
46-
function _decodeRequestData(bytes memory _data)
47-
internal
48-
pure
49-
returns (
50-
IBondEscalationAccounting _accountingExtension,
51-
IERC20 _token,
52-
uint256 _percentageDiff,
53-
uint256 _pledgeThreshold,
54-
uint256 _timeUntilDeadline,
55-
uint256 _timeToBreakInequality
56-
)
57-
{
58-
(_accountingExtension, _token, _percentageDiff, _pledgeThreshold, _timeUntilDeadline, _timeToBreakInequality) =
59-
abi.decode(_data, (IBondEscalationAccounting, IERC20, uint256, uint256, uint256, uint256));
43+
abi.decode(requestData[_requestId], (IBondEscalationAccounting, IERC20, uint256, uint256, uint256, uint256));
6044
}
6145

6246
function startResolution(bytes32 _disputeId) external onlyOracle {

solidity/contracts/modules/BondedDisputeModule.sol

+5-13
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ contract BondedDisputeModule is Module, IBondedDisputeModule {
1717
}
1818

1919
function decodeRequestData(bytes32 _requestId)
20-
external
20+
public
2121
view
2222
returns (IAccountingExtension _accountingExtension, IERC20 _bondToken, uint256 _bondSize)
2323
{
24-
(_accountingExtension, _bondToken, _bondSize) = _decodeRequestData(requestData[_requestId]);
24+
(_accountingExtension, _bondToken, _bondSize) =
25+
abi.decode(requestData[_requestId], (IAccountingExtension, IERC20, uint256));
2526
}
2627

2728
function disputeEscalated(bytes32 _disputeId) external onlyOracle {}
@@ -41,15 +42,14 @@ contract BondedDisputeModule is Module, IBondedDisputeModule {
4142
createdAt: block.timestamp
4243
});
4344

44-
(IAccountingExtension _accountingExtension, IERC20 _bondToken, uint256 _bondSize) =
45-
_decodeRequestData(requestData[_requestId]);
45+
(IAccountingExtension _accountingExtension, IERC20 _bondToken, uint256 _bondSize) = decodeRequestData(_requestId);
4646
_accountingExtension.bond(_disputer, _requestId, _bondToken, _bondSize);
4747
}
4848

4949
// TODO: This doesn't handle the cases of unconclusive statuses
5050
function updateDisputeStatus(bytes32, /* _disputeId */ IOracle.Dispute memory _dispute) external onlyOracle {
5151
(IAccountingExtension _accountingExtension, IERC20 _bondToken, uint256 _bondSize) =
52-
_decodeRequestData(requestData[_dispute.requestId]);
52+
decodeRequestData(_dispute.requestId);
5353
bool _won = _dispute.status == IOracle.DisputeStatus.Won;
5454

5555
_accountingExtension.pay(
@@ -64,12 +64,4 @@ contract BondedDisputeModule is Module, IBondedDisputeModule {
6464
_won ? _dispute.disputer : _dispute.proposer, _dispute.requestId, _bondToken, _bondSize
6565
);
6666
}
67-
68-
function _decodeRequestData(bytes memory _data)
69-
internal
70-
pure
71-
returns (IAccountingExtension _accountingExtension, IERC20 _bondToken, uint256 _bondSize)
72-
{
73-
(_accountingExtension, _bondToken, _bondSize) = abi.decode(_data, (IAccountingExtension, IERC20, uint256));
74-
}
7567
}

solidity/contracts/modules/BondedResponseModule.sol

+4-12
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,12 @@ contract BondedResponseModule is Module, IBondedResponseModule {
1313
constructor(IOracle _oracle) Module(_oracle) {}
1414

1515
function decodeRequestData(bytes32 _requestId)
16-
external
16+
public
1717
view
1818
returns (IAccountingExtension _accountingExtension, IERC20 _bondToken, uint256 _bondSize, uint256 _deadline)
19-
{
20-
(_accountingExtension, _bondToken, _bondSize, _deadline) = _decodeRequestData(requestData[_requestId]);
21-
}
22-
23-
function _decodeRequestData(bytes memory _data)
24-
internal
25-
pure
26-
returns (IAccountingExtension _accountingExtension, IERC20 _bondToken, uint256 _bondSize, uint256 _deadline)
2719
{
2820
(_accountingExtension, _bondToken, _bondSize, _deadline) =
29-
abi.decode(_data, (IAccountingExtension, IERC20, uint256, uint256));
21+
abi.decode(requestData[_requestId], (IAccountingExtension, IERC20, uint256, uint256));
3022
}
3123

3224
function propose(
@@ -35,7 +27,7 @@ contract BondedResponseModule is Module, IBondedResponseModule {
3527
bytes calldata _responseData
3628
) external onlyOracle returns (IOracle.Response memory _response) {
3729
(IAccountingExtension _accountingExtension, IERC20 _bondToken, uint256 _bondSize, uint256 _deadline) =
38-
_decodeRequestData(requestData[_requestId]);
30+
decodeRequestData(_requestId);
3931

4032
// Cannot propose after the deadline
4133
if (block.timestamp >= _deadline) revert BondedResponseModule_TooLateToPropose();
@@ -66,7 +58,7 @@ contract BondedResponseModule is Module, IBondedResponseModule {
6658

6759
function finalizeRequest(bytes32 _requestId) external override(IModule, Module) onlyOracle {
6860
(IAccountingExtension _accountingExtension, IERC20 _bondToken, uint256 _bondSize, uint256 _deadline) =
69-
_decodeRequestData(requestData[_requestId]);
61+
decodeRequestData(_requestId);
7062

7163
if (block.timestamp < _deadline) revert BondedResponseModule_TooEarlyToFinalize();
7264

solidity/contracts/modules/CallbackModule.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {IModule, Module} from '../Module.sol';
99
contract CallbackModule is Module, ICallbackModule {
1010
constructor(IOracle _oracle) Module(_oracle) {}
1111

12-
function decodeRequestData(bytes32 _requestId) external view returns (address _target, bytes memory _data) {
12+
function decodeRequestData(bytes32 _requestId) public view returns (address _target, bytes memory _data) {
1313
(_target, _data) = abi.decode(requestData[_requestId], (address, bytes));
1414
}
1515

solidity/contracts/modules/ContractCallRequestModule.sol

+4-20
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ contract ContractCallRequestModule is Module, IContractCallRequestModule {
1212
constructor(IOracle _oracle) Module(_oracle) {}
1313

1414
function decodeRequestData(bytes32 _requestId)
15-
external
15+
public
1616
view
1717
returns (
1818
address _target,
@@ -24,28 +24,12 @@ contract ContractCallRequestModule is Module, IContractCallRequestModule {
2424
)
2525
{
2626
(_target, _functionSelector, _data, _accountingExtension, _paymentToken, _paymentAmount) =
27-
_decodeRequestData(requestData[_requestId]);
28-
}
29-
30-
function _decodeRequestData(bytes memory _encodedData)
31-
internal
32-
pure
33-
returns (
34-
address _target,
35-
bytes4 _functionSelector,
36-
bytes memory _data,
37-
IAccountingExtension _accountingExtension,
38-
IERC20 _paymentToken,
39-
uint256 _paymentAmount
40-
)
41-
{
42-
(_target, _functionSelector, _data, _accountingExtension, _paymentToken, _paymentAmount) =
43-
abi.decode(_encodedData, (address, bytes4, bytes, IAccountingExtension, IERC20, uint256));
27+
abi.decode(requestData[_requestId], (address, bytes4, bytes, IAccountingExtension, IERC20, uint256));
4428
}
4529

4630
function _afterSetupRequest(bytes32 _requestId, bytes calldata _data) internal override {
4731
(,,, IAccountingExtension _accountingExtension, IERC20 _paymentToken, uint256 _paymentAmount) =
48-
_decodeRequestData(_data);
32+
decodeRequestData(_requestId);
4933
IOracle.Request memory _request = ORACLE.getRequest(_requestId);
5034
_accountingExtension.bond(_request.requester, _requestId, _paymentToken, _paymentAmount);
5135
}
@@ -54,7 +38,7 @@ contract ContractCallRequestModule is Module, IContractCallRequestModule {
5438
IOracle.Request memory _request = ORACLE.getRequest(_requestId);
5539
IOracle.Response memory _response = ORACLE.getFinalizedResponse(_requestId);
5640
(,,, IAccountingExtension _accountingExtension, IERC20 _paymentToken, uint256 _paymentAmount) =
57-
_decodeRequestData(requestData[_requestId]);
41+
decodeRequestData(_requestId);
5842
if (_response.createdAt != 0) {
5943
_accountingExtension.pay(_requestId, _request.requester, _response.proposer, _paymentToken, _paymentAmount);
6044
} else {

solidity/contracts/modules/HttpRequestModule.sol

+4-20
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ contract HttpRequestModule is Module, IHttpRequestModule {
1212
constructor(IOracle _oracle) Module(_oracle) {}
1313

1414
function decodeRequestData(bytes32 _requestId)
15-
external
15+
public
1616
view
1717
returns (
1818
string memory _url,
@@ -24,37 +24,21 @@ contract HttpRequestModule is Module, IHttpRequestModule {
2424
)
2525
{
2626
(_url, _method, _body, _accountingExtension, _paymentToken, _paymentAmount) =
27-
_decodeRequestData(requestData[_requestId]);
27+
abi.decode(requestData[_requestId], (string, HttpMethod, string, IAccountingExtension, IERC20, uint256));
2828
}
2929

3030
function _afterSetupRequest(bytes32 _requestId, bytes calldata _data) internal override {
3131
(,,, IAccountingExtension _accountingExtension, IERC20 _paymentToken, uint256 _paymentAmount) =
32-
_decodeRequestData(_data);
32+
decodeRequestData(_requestId);
3333
IOracle.Request memory _request = ORACLE.getRequest(_requestId);
3434
_accountingExtension.bond(_request.requester, _requestId, _paymentToken, _paymentAmount);
3535
}
3636

37-
function _decodeRequestData(bytes memory _data)
38-
internal
39-
pure
40-
returns (
41-
string memory _url,
42-
HttpMethod _method,
43-
string memory _body,
44-
IAccountingExtension _accountingExtension,
45-
IERC20 _paymentToken,
46-
uint256 _paymentAmount
47-
)
48-
{
49-
(_url, _method, _body, _accountingExtension, _paymentToken, _paymentAmount) =
50-
abi.decode(_data, (string, HttpMethod, string, IAccountingExtension, IERC20, uint256));
51-
}
52-
5337
function finalizeRequest(bytes32 _requestId) external override(IModule, Module) onlyOracle {
5438
IOracle.Request memory _request = ORACLE.getRequest(_requestId);
5539
IOracle.Response memory _response = ORACLE.getFinalizedResponse(_requestId);
5640
(,,, IAccountingExtension _accountingExtension, IERC20 _paymentToken, uint256 _paymentAmount) =
57-
_decodeRequestData(requestData[_requestId]);
41+
decodeRequestData(_requestId);
5842
if (_response.createdAt != 0) {
5943
_accountingExtension.pay(_requestId, _request.requester, _response.proposer, _paymentToken, _paymentAmount);
6044
} else {

solidity/contracts/modules/MultipleCallbacksModule.sol

+1-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@ import {IModule, Module} from '../Module.sol';
99
contract MultipleCallbacksModule is Module, ICallbackModule {
1010
constructor(IOracle _oracle) Module(_oracle) {}
1111

12-
function decodeRequestData(bytes32 _requestId)
13-
external
14-
view
15-
returns (address[] memory _targets, bytes[] memory _datas)
16-
{
12+
function decodeRequestData(bytes32 _requestId) public view returns (address[] memory _targets, bytes[] memory _datas) {
1713
(_targets, _datas) = abi.decode(requestData[_requestId], (address[], bytes[]));
1814
}
1915

0 commit comments

Comments
 (0)