Skip to content

Commit

Permalink
fix[OA-audit-L01]: Limit ability for Full Policy Escalation Manager t…
Browse files Browse the repository at this point in the history
…o setArbitrationResolution (#4319)

* fix: Limit ability for Full Policy EscilationManager to setArbitrationResolution

Signed-off-by: chrismaree <christopher.maree@gmail.com>

* fix

Signed-off-by: chrismaree <christopher.maree@gmail.com>

* Update packages/core/test/foundry/optimistic-asserter/escalation-manager/FullPolicyEscalationManager.t.sol

Signed-off-by: chrismaree <christopher.maree@gmail.com>
Signed-off-by: Reinis Martinsons <reinis@umaproject.org>
Co-authored-by: Reinis Martinsons <77973553+Reinis-FRP@users.noreply.github.com>
Co-authored-by: Reinis Martinsons <reinis@umaproject.org>
  • Loading branch information
3 people committed Dec 22, 2022
1 parent 97be5e6 commit 76bed2a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
Expand Up @@ -154,6 +154,7 @@ contract FullPolicyEscalationManager is BaseEscalationManager, Ownable {
bool arbitrationResolution
) public onlyOwner {
bytes32 requestId = getRequestId(identifier, time, ancillaryData);
require(arbitrationResolutions[requestId].valueSet == false, "Arbitration already resolved");
arbitrationResolutions[requestId] = ArbitrationResolution(true, arbitrationResolution);
emit ArbitrationResolutionSet(identifier, time, ancillaryData, arbitrationResolution);
}
Expand Down
Expand Up @@ -18,13 +18,16 @@ contract FullPolicyEscalationManagerTest is CommonOptimisticAsserterTest {
bytes memory ancillaryData = "ancillary";

vm.expectRevert("Arbitration resolution not set");
escalationManager.getPrice(identifier, time, ancillaryData);

escalationManager.getPrice(identifier, time, ancillaryData);
escalationManager.setArbitrationResolution(identifier, time, ancillaryData, true);
assertTrue(escalationManager.getPrice(identifier, time, ancillaryData) == 1e18);

vm.expectRevert("Arbitration already resolved"); // Can not re-set the resolution price once set.
escalationManager.setArbitrationResolution(identifier, time, ancillaryData, false);
assertTrue(escalationManager.getPrice(identifier, time, ancillaryData) == 0);

escalationManager.setArbitrationResolution(identifier, time + 1, ancillaryData, false); // Can set for new time.
assertTrue(escalationManager.getPrice(identifier, time + 1, ancillaryData) == 0);
}

function test_RevertIf_InvalidConfiguration() public {
Expand Down

0 comments on commit 76bed2a

Please sign in to comment.