Skip to content

Commit 3791b41

Browse files
committed
Merge branch 'master' into scripts-modernization
2 parents 3334ac4 + 88d1754 commit 3791b41

14 files changed

+556
-958
lines changed

contracts/hardhat.config.js

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,6 @@ require("./tasks/update-deployments");
1010
module.exports = {
1111
solidity: {
1212
compilers: [
13-
{
14-
version: "0.7.6",
15-
settings: {
16-
optimizer: {
17-
enabled: true,
18-
runs: 200,
19-
},
20-
},
21-
},
2213
{
2314
version: "0.8.25",
2415
settings: {
@@ -31,7 +22,7 @@ module.exports = {
3122
],
3223
},
3324
paths: {
34-
sources: "./src",
25+
sources: "./src/0.8",
3526
},
3627
networks: {
3728
// ----------------------------------------------------------------------------------------

contracts/hardhat.config.zksync.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@ module.exports = {
2222
],
2323
},
2424
zksolc: {
25-
version: "1.3.16", // Latest versions aren't supported for verification yet.
26-
settings: {},
25+
version: "1.5.11",
26+
settings: {
27+
suppressedErrors: ["sendtransfer"]
28+
},
2729
},
2830
paths: {
29-
sources: "./src",
31+
sources: "./src/0.8",
3032
},
3133
networks: {
3234
hardhat: {

contracts/src/0.8/RealitioHomeProxyOptimism.sol

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ contract RealitioHomeProxyOptimism is IHomeArbitrationProxy {
5252
/// @dev Associates a question ID with the requester who succeeded in requesting arbitration. questionIDToRequester[questionID]
5353
mapping(bytes32 => address) public questionIDToRequester;
5454

55-
modifier onlyForeignProxy() {
55+
modifier onlyForeignProxy() virtual {
5656
require(msg.sender == address(messenger), "NOT_MESSENGER");
5757
require(messenger.xDomainMessageSender() == foreignProxy, "Can only be called by Foreign Proxy");
5858
_;
@@ -123,7 +123,7 @@ contract RealitioHomeProxyOptimism is IHomeArbitrationProxy {
123123

124124
bytes4 selector = IForeignArbitrationProxy.receiveArbitrationAcknowledgement.selector;
125125
bytes memory data = abi.encodeWithSelector(selector, _questionID, _requester);
126-
messenger.sendMessage(foreignProxy, data, MIN_GAS_LIMIT);
126+
sendToL1(data);
127127
emit RequestAcknowledged(_questionID, _requester);
128128
}
129129

@@ -146,7 +146,7 @@ contract RealitioHomeProxyOptimism is IHomeArbitrationProxy {
146146

147147
bytes4 selector = IForeignArbitrationProxy.receiveArbitrationCancelation.selector;
148148
bytes memory data = abi.encodeWithSelector(selector, _questionID, _requester);
149-
messenger.sendMessage(foreignProxy, data, MIN_GAS_LIMIT);
149+
sendToL1(data);
150150
emit RequestCanceled(_questionID, _requester);
151151
}
152152

@@ -217,4 +217,12 @@ contract RealitioHomeProxyOptimism is IHomeArbitrationProxy {
217217

218218
emit ArbitrationFinished(_questionID);
219219
}
220+
221+
/**
222+
* @notice Sends a message to L1.
223+
* @param _data The data sent.
224+
*/
225+
function sendToL1(bytes memory _data) internal virtual {
226+
messenger.sendMessage(foreignProxy, _data, MIN_GAS_LIMIT);
227+
}
220228
}

contracts/src/0.8/test/arbitrum/MockHomeProxy.sol renamed to contracts/src/0.8/test/arbitrum/MockRealitioHomeProxyArbitrum.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import "../../RealitioHomeProxyArbitrum.sol";
66
import "./MockBridge.sol";
77

88
/// @dev MockHomeProxy to bypass the modifier and usage of precompile.
9-
contract MockRealitioHomeProxy is RealitioHomeProxyArbitrum {
9+
contract MockRealitioHomeProxyArbitrum is RealitioHomeProxyArbitrum {
1010
address public mockInbox;
1111
MockBridge public mockBridge;
1212

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// SPDX-License-Identifier: MIT
2+
3+
pragma solidity 0.8.25;
4+
5+
import "../../RealitioHomeProxyOptimism.sol";
6+
import "./MockCrossDomainMessenger.sol";
7+
8+
/// @dev MockHomeProxy to bypass the modifier and usage of precompile.
9+
contract MockRealitioHomeProxyOptimism is RealitioHomeProxyOptimism {
10+
MockCrossDomainMessenger public mockMessenger;
11+
12+
modifier onlyForeignProxy() override {
13+
require(msg.sender == address(mockMessenger), "NOT_MESSENGER");
14+
require(mockMessenger.xDomainMessageSender() == foreignProxy, "Can only be called by Foreign Proxy");
15+
_;
16+
}
17+
18+
constructor(
19+
IRealitio _realitio,
20+
string memory _metadata,
21+
address _foreignProxy,
22+
uint256 _foreignChainId,
23+
MockCrossDomainMessenger _messenger
24+
) RealitioHomeProxyOptimism(_realitio, _metadata, _foreignProxy, _foreignChainId) {
25+
mockMessenger = _messenger;
26+
}
27+
28+
function sendToL1(bytes memory _data) internal override {
29+
mockMessenger.sendMessage(foreignProxy, _data, MIN_GAS_LIMIT);
30+
}
31+
}

contracts/src/0.8/test/polygon/MockForeignArbitratorProxyWithAppeals.sol renamed to contracts/src/0.8/test/polygon/MockRealitioForeignProxyPolygon.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {RealitioForeignProxyPolygon} from "../../RealitioForeignProxyPolygon.sol
77
* @title Arbitration proxy for Realitio on Ethereum side (A.K.A. the Foreign Chain).
88
* @dev This contract is meant to be deployed to the Ethereum chains where Kleros is deployed.
99
*/
10-
contract MockForeignArbitrationProxyWithAppeals is RealitioForeignProxyPolygon {
10+
contract MockRealitioForeignProxyPolygon is RealitioForeignProxyPolygon {
1111
constructor(
1212
IArbitrator _arbitrator,
1313
bytes memory _arbitratorExtraData,

contracts/src/0.8/test/polygon/MockHomeArbitratorProxy.sol renamed to contracts/src/0.8/test/polygon/MockRealitioHomeProxyPolygon.sol

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ pragma solidity 0.8.25;
33
import {IRealitio} from "../../interfaces/IRealitio.sol";
44
import {RealitioHomeProxyPolygon} from "../../RealitioHomeProxyPolygon.sol";
55

6-
import {MockForeignArbitrationProxyWithAppeals} from "./MockForeignArbitratorProxyWithAppeals.sol";
6+
import {MockRealitioForeignProxyPolygon} from "./MockRealitioForeignProxyPolygon.sol";
77

88
/**
99
* @title Arbitration proxy for Realitio on Polygon side (A.K.A. the Home Chain).
1010
* @dev This contract is meant to be deployed on the side of Realitio.
1111
*/
12-
contract MockHomeArbitrationProxy is RealitioHomeProxyPolygon {
12+
contract MockRealitioHomeProxyPolygon is RealitioHomeProxyPolygon {
1313
constructor(
1414
IRealitio _realitio,
1515
string memory _metadata,
@@ -20,6 +20,6 @@ contract MockHomeArbitrationProxy is RealitioHomeProxyPolygon {
2020
// Overridden to directly call the foreignProxy under test
2121
// instead of emitting an event
2222
function _sendMessageToRoot(bytes memory message) internal override {
23-
MockForeignArbitrationProxyWithAppeals(fxRootTunnel).processMessageFromChild(message);
23+
MockRealitioForeignProxyPolygon(fxRootTunnel).processMessageFromChild(message);
2424
}
2525
}

contracts/src/0.8/test/zksync/MockZkHomeProxy.sol renamed to contracts/src/0.8/test/zksync/MockRealitioHomeProxyZkSync.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import "../../RealitioHomeProxyZkSync.sol";
77
/**
88
* @dev The purpose of this contract is to override the precompiled L1Messenger.
99
*/
10-
contract MockZkHomeProxy is RealitioHomeProxyZkSync {
10+
contract MockRealitioHomeProxyZkSync is RealitioHomeProxyZkSync {
1111
event L1MessageSent(bytes _data);
1212

1313
constructor(

0 commit comments

Comments
 (0)