Skip to content

Commit 9f27b76

Browse files
authored
Merge pull request #1567 from Anmol-Dhiman/chore(contracts)/sol-version-update
Update Solc version from 0.8.18 to 0.8.24
2 parents 27853d8 + 07a593b commit 9f27b76

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+128
-130
lines changed

contracts/hardhat.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ dotenv.config();
2121

2222
const config: HardhatUserConfig = {
2323
solidity: {
24-
version: "0.8.18",
24+
version: "0.8.24",
2525
settings: {
2626
optimizer: {
2727
enabled: true,

contracts/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"@nomicfoundation/hardhat-chai-matchers": "^1.0.6",
6565
"@nomiclabs/hardhat-ethers": "^2.2.3",
6666
"@nomiclabs/hardhat-solhint": "^3.0.1",
67-
"@openzeppelin/contracts": "^4.9.5",
67+
"@openzeppelin/contracts": "^5.0.2",
6868
"@typechain/ethers-v5": "^11.1.2",
6969
"@typechain/hardhat": "^7.0.0",
7070
"@types/chai": "^4.3.11",
@@ -98,6 +98,6 @@
9898
"typescript": "^5.3.3"
9999
},
100100
"dependencies": {
101-
"@kleros/vea-contracts": "^0.3.2"
101+
"@kleros/vea-contracts": "^0.4.0"
102102
}
103103
}

contracts/src/arbitration/CentralizedArbitrator.sol

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: MIT
22

3-
pragma solidity 0.8.18;
3+
pragma solidity 0.8.24;
44

55
import {IArbitrableV2, IArbitratorV2, IERC20} from "./interfaces/IArbitratorV2.sol";
66

@@ -29,9 +29,9 @@ contract CentralizedArbitrator is IArbitratorV2 {
2929
}
3030

3131
struct Round {
32-
mapping(uint256 => uint256) paidFees; // Tracks the fees paid for each choice in this round.
33-
mapping(uint256 => bool) hasPaid; // True if this choice was fully funded, false otherwise.
34-
mapping(address => mapping(uint256 => uint256)) contributions; // Maps contributors to their contributions for each choice.
32+
mapping(uint256 choiceId => uint256) paidFees; // Tracks the fees paid for each choice in this round.
33+
mapping(uint256 choiceId => bool) hasPaid; // True if this choice was fully funded, false otherwise.
34+
mapping(address account => mapping(uint256 choiceId => uint256)) contributions; // Maps contributors to their contributions for each choice.
3535
uint256 feeRewards; // Sum of reimbursable appeal fees available to the parties that made contributions to the ruling that ultimately wins a dispute.
3636
uint256[] fundedChoices; // Stores the choices that are fully funded.
3737
}

contracts/src/arbitration/DisputeTemplateRegistry.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
pragma solidity 0.8.18;
2+
pragma solidity 0.8.24;
33

44
import "../proxy/UUPSProxiable.sol";
55
import "../proxy/Initializable.sol";

contracts/src/arbitration/KlerosCore.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/// @custom:bounties: []
77
/// @custom:deployments: []
88

9-
pragma solidity 0.8.18;
9+
pragma solidity 0.8.24;
1010

1111
import "./KlerosCoreBase.sol";
1212
import {UUPSProxiable} from "../proxy/UUPSProxiable.sol";

contracts/src/arbitration/KlerosCoreBase.sol

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/// @custom:bounties: []
77
/// @custom:deployments: []
88

9-
pragma solidity 0.8.18;
9+
pragma solidity 0.8.24;
1010

1111
import {IArbitrableV2, IArbitratorV2} from "./interfaces/IArbitratorV2.sol";
1212
import {IDisputeKit} from "./interfaces/IDisputeKit.sol";
@@ -41,7 +41,7 @@ abstract contract KlerosCoreBase is IArbitratorV2 {
4141
uint256 feeForJuror; // Arbitration fee paid per juror.
4242
uint256 jurorsForCourtJump; // The appeal after the one that reaches this number of jurors will go to the parent court if any.
4343
uint256[4] timesPerPeriod; // The time allotted to each dispute period in the form `timesPerPeriod[period]`.
44-
mapping(uint256 => bool) supportedDisputeKits; // True if DK with this ID is supported by the court. Note that each court must support classic dispute kit.
44+
mapping(uint256 disputeKitId => bool) supportedDisputeKits; // True if DK with this ID is supported by the court. Note that each court must support classic dispute kit.
4545
bool disabled; // True if the court is disabled. Unused for now, will be implemented later.
4646
}
4747

contracts/src/arbitration/KlerosCoreNeo.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/// @custom:bounties: []
77
/// @custom:deployments: []
88

9-
pragma solidity 0.8.18;
9+
pragma solidity 0.8.24;
1010

1111
import "./KlerosCoreBase.sol";
1212
import {UUPSProxiable} from "../proxy/UUPSProxiable.sol";

contracts/src/arbitration/KlerosGovernor.sol

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
/// @custom:auditors: []
66
/// @custom:deployments: []
77

8-
pragma solidity 0.8.18;
8+
pragma solidity 0.8.24;
99

1010
import {IArbitrableV2, IArbitratorV2} from "./interfaces/IArbitrableV2.sol";
1111
import "./interfaces/IDisputeTemplateRegistry.sol";
@@ -31,7 +31,7 @@ contract KlerosGovernor is IArbitrableV2 {
3131
uint256[] submittedLists; // Tracks all lists that were submitted in a session in the form submittedLists[submissionID].
3232
uint256 sumDeposit; // Sum of all submission deposits in a session (minus arbitration fees). This is used to calculate the reward.
3333
Status status; // Status of a session.
34-
mapping(bytes32 => bool) alreadySubmitted; // Indicates whether or not the transaction list was already submitted in order to catch duplicates in the form alreadySubmitted[listHash].
34+
mapping(bytes32 listHash => bool) alreadySubmitted; // Indicates whether or not the transaction list was already submitted in order to catch duplicates in the form alreadySubmitted[listHash].
3535
uint256 durationOffset; // Time in seconds that prolongs the submission period after the first submission, to give other submitters time to react.
3636
}
3737

contracts/src/arbitration/PolicyRegistry.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
pragma solidity 0.8.18;
2+
pragma solidity 0.8.24;
33

44
import "../proxy/UUPSProxiable.sol";
55
import "../proxy/Initializable.sol";

contracts/src/arbitration/SortitionModule.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* @custom:deployments: []
99
*/
1010

11-
pragma solidity 0.8.18;
11+
pragma solidity 0.8.24;
1212

1313
import "./SortitionModuleBase.sol";
1414
import "../proxy/UUPSProxiable.sol";

contracts/src/arbitration/SortitionModuleBase.sol

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* @custom:deployments: []
99
*/
1010

11-
pragma solidity 0.8.18;
11+
pragma solidity 0.8.24;
1212

1313
import "./KlerosCore.sol";
1414
import "./interfaces/ISortitionModule.sol";
@@ -70,10 +70,10 @@ abstract contract SortitionModuleBase is ISortitionModule {
7070
uint256 public rngLookahead; // Minimal block distance between requesting and obtaining a random number.
7171
uint256 public delayedStakeWriteIndex; // The index of the last `delayedStake` item that was written to the array. 0 index is skipped.
7272
uint256 public delayedStakeReadIndex; // The index of the next `delayedStake` item that should be processed. Starts at 1 because 0 index is skipped.
73-
mapping(bytes32 => SortitionSumTree) sortitionSumTrees; // The mapping trees by keys.
74-
mapping(address => Juror) public jurors; // The jurors.
73+
mapping(bytes32 treeHash => SortitionSumTree) sortitionSumTrees; // The mapping trees by keys.
74+
mapping(address account => Juror) public jurors; // The jurors.
7575
mapping(uint256 => DelayedStake) public delayedStakes; // Stores the stakes that were changed during Drawing phase, to update them when the phase is switched to Staking.
76-
mapping(address => mapping(uint96 => uint256)) public latestDelayedStakeIndex; // Maps the juror to its latest delayed stake. If there is already a delayed stake for this juror then it'll be replaced. latestDelayedStakeIndex[juror][courtID].
76+
mapping(address jurorAccount => mapping(uint96 courtId => uint256)) public latestDelayedStakeIndex; // Maps the juror to its latest delayed stake. If there is already a delayed stake for this juror then it'll be replaced. latestDelayedStakeIndex[juror][courtID].
7777

7878
// ************************************* //
7979
// * Events * //

contracts/src/arbitration/SortitionModuleNeo.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* @custom:deployments: []
99
*/
1010

11-
pragma solidity 0.8.18;
11+
pragma solidity 0.8.24;
1212

1313
import "./SortitionModuleBase.sol";
1414
import "../proxy/UUPSProxiable.sol";

contracts/src/arbitration/arbitrables/ArbitrableExample.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: MIT
22

3-
pragma solidity 0.8.18;
3+
pragma solidity 0.8.24;
44

55
import {IArbitrableV2, IArbitratorV2} from "../interfaces/IArbitrableV2.sol";
66
import "../interfaces/IDisputeTemplateRegistry.sol";

contracts/src/arbitration/arbitrables/DisputeResolver.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import {IArbitrableV2, IArbitratorV2} from "../interfaces/IArbitrableV2.sol";
99
import "../interfaces/IDisputeTemplateRegistry.sol";
1010

11-
pragma solidity 0.8.18;
11+
pragma solidity 0.8.24;
1212

1313
/// @title DisputeResolver
1414
/// DisputeResolver contract adapted for V2 from https://github.com/kleros/arbitrable-proxy-contracts/blob/master/contracts/ArbitrableProxy.sol.

contracts/src/arbitration/dispute-kits/DisputeKitClassic.sol

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/// @custom:bounties: []
77
/// @custom:deployments: []
88

9-
pragma solidity 0.8.18;
9+
pragma solidity 0.8.24;
1010

1111
import "../KlerosCore.sol";
1212
import "../interfaces/IDisputeKit.sol";
@@ -39,9 +39,9 @@ contract DisputeKitClassic is IDisputeKit, Initializable, UUPSProxiable {
3939
bool tied; // True if there is a tie, false otherwise.
4040
uint256 totalVoted; // Former uint[_appeal] votesInEachRound.
4141
uint256 totalCommitted; // Former commitsInRound.
42-
mapping(uint256 => uint256) paidFees; // Tracks the fees paid for each choice in this round.
43-
mapping(uint256 => bool) hasPaid; // True if this choice was fully funded, false otherwise.
44-
mapping(address => mapping(uint256 => uint256)) contributions; // Maps contributors to their contributions for each choice.
42+
mapping(uint256 choiceId => uint256) paidFees; // Tracks the fees paid for each choice in this round.
43+
mapping(uint256 choiceId => bool) hasPaid; // True if this choice was fully funded, false otherwise.
44+
mapping(address account => mapping(uint256 choiceId => uint256)) contributions; // Maps contributors to their contributions for each choice.
4545
uint256 feeRewards; // Sum of reimbursable appeal fees available to the parties that made contributions to the ruling that ultimately wins a dispute.
4646
uint256[] fundedChoices; // Stores the choices that are fully funded.
4747
uint256 nbVotes; // Maximal number of votes this dispute can get.

contracts/src/arbitration/dispute-kits/DisputeKitSybilResistant.sol

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/// @custom:bounties: []
77
/// @custom:deployments: []
88

9-
pragma solidity 0.8.18;
9+
pragma solidity 0.8.24;
1010

1111
import "../KlerosCore.sol";
1212
import "../interfaces/IDisputeKit.sol";
@@ -46,13 +46,13 @@ contract DisputeKitSybilResistant is IDisputeKit, Initializable, UUPSProxiable {
4646
bool tied; // True if there is a tie, false otherwise.
4747
uint256 totalVoted; // Former uint[_appeal] votesInEachRound.
4848
uint256 totalCommitted; // Former commitsInRound.
49-
mapping(uint256 => uint256) paidFees; // Tracks the fees paid for each choice in this round.
50-
mapping(uint256 => bool) hasPaid; // True if this choice was fully funded, false otherwise.
51-
mapping(address => mapping(uint256 => uint256)) contributions; // Maps contributors to their contributions for each choice.
49+
mapping(uint256 choiceId => uint256) paidFees; // Tracks the fees paid for each choice in this round.
50+
mapping(uint256 choiceId => bool) hasPaid; // True if this choice was fully funded, false otherwise.
51+
mapping(address account => mapping(uint256 choiceId => uint256)) contributions; // Maps contributors to their contributions for each choice.
5252
uint256 feeRewards; // Sum of reimbursable appeal fees available to the parties that made contributions to the ruling that ultimately wins a dispute.
5353
uint256[] fundedChoices; // Stores the choices that are fully funded.
5454
uint256 nbVotes; // Maximal number of votes this dispute can get.
55-
mapping(address => bool) alreadyDrawn; // Set to 'true' if the address has already been drawn, so it can't be drawn more than once.
55+
mapping(address drawnAddress => bool) alreadyDrawn; // Set to 'true' if the address has already been drawn, so it can't be drawn more than once.
5656
}
5757

5858
struct Vote {

contracts/src/arbitration/evidence/EvidenceModule.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
/// @custom:deployments: []
88
/// @custom:tools: []
99

10-
pragma solidity 0.8.18;
10+
pragma solidity 0.8.24;
1111

1212
import "../interfaces/IArbitratorV2.sol";
1313
import "../interfaces/IEvidence.sol";

contracts/src/arbitration/evidence/ModeratedEvidenceModule.sol

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
/// @custom:deployments: []
88
/// @custom:tools: []
99

10-
pragma solidity 0.8.18;
10+
pragma solidity 0.8.24;
1111

1212
// TODO: standard interfaces should be placed in a separated repo (?)
1313
import {IArbitrableV2, IArbitratorV2} from "../interfaces/IArbitrableV2.sol";
@@ -39,7 +39,7 @@ contract ModeratedEvidenceModule is IArbitrableV2 {
3939
struct Moderation {
4040
uint256[3] paidFees; // Tracks the fees paid by each side in this moderation.
4141
uint256 feeRewards; // Sum of reimbursable fees and stake rewards available to the parties that made contributions to the side that ultimately wins a dispute.
42-
mapping(address => uint256[3]) contributions; // Maps contributors to their contributions for each side.
42+
mapping(address contributor => uint256[3]) contributions; // Maps contributors to their contributions for each side.
4343
bool closed; // Moderation happens over a bounded period of time after which it is considered closed. If so, a new moderation round should be opened.
4444
Party currentWinner; // The current winner of this moderation round.
4545
uint256 bondDeadline; // The deadline until which the loser party can stake to overturn the current status.
@@ -57,7 +57,7 @@ contract ModeratedEvidenceModule is IArbitrableV2 {
5757

5858
uint256 public constant AMOUNT_OF_CHOICES = 2;
5959
uint256 public constant MULTIPLIER_DIVISOR = 10000; // Divisor parameter for multipliers.
60-
mapping(bytes32 => EvidenceData) evidences; // Maps the evidence ID to its data. evidences[evidenceID].
60+
mapping(bytes32 evidenceId => EvidenceData) evidences; // Maps the evidence ID to its data. evidences[evidenceID].
6161
mapping(uint256 => bytes32) public disputeIDtoEvidenceID; // One-to-one relationship between the dispute and the evidence.
6262
ArbitratorData[] public arbitratorDataList; // Stores the arbitrator data of the contract. Updated each time the data is changed.
6363
IArbitratorV2 public immutable arbitrator; // The trusted arbitrator to resolve potential disputes. If it needs to be changed, a new contract can be deployed.

contracts/src/arbitration/interfaces/IArbitrableV2.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: MIT
22

3-
pragma solidity 0.8.18;
3+
pragma solidity 0.8.24;
44

55
import "./IArbitratorV2.sol";
66

contracts/src/arbitration/interfaces/IArbitratorV2.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: MIT
22

3-
pragma solidity 0.8.18;
3+
pragma solidity 0.8.24;
44

55
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
66
import "./IArbitrableV2.sol";

contracts/src/arbitration/interfaces/IDisputeKit.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/// @custom:bounties: []
77
/// @custom:deployments: []
88

9-
pragma solidity 0.8.18;
9+
pragma solidity 0.8.24;
1010

1111
import "./IArbitratorV2.sol";
1212

contracts/src/arbitration/interfaces/IDisputeTemplateRegistry.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: MIT
22

3-
pragma solidity 0.8.18;
3+
pragma solidity 0.8.24;
44

55
/// @title IDisputeTemplate
66
/// @notice Dispute Template interface.

contracts/src/arbitration/interfaces/IEvidence.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: MIT
22

3-
pragma solidity 0.8.18;
3+
pragma solidity 0.8.24;
44

55
/// @title IEvidence
66
interface IEvidence {

contracts/src/arbitration/interfaces/ISortitionModule.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
pragma solidity 0.8.18;
2+
pragma solidity 0.8.24;
33

44
import "../../libraries/Constants.sol";
55

contracts/src/arbitration/university/ISortitionModuleUniversity.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
pragma solidity 0.8.18;
2+
pragma solidity 0.8.24;
33

44
import {ISortitionModule} from "../interfaces/ISortitionModule.sol";
55

contracts/src/arbitration/university/KlerosCoreUniversity.sol

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: MIT
22

3-
pragma solidity 0.8.18;
3+
pragma solidity 0.8.24;
44

55
import {IArbitrableV2, IArbitratorV2} from "../interfaces/IArbitratorV2.sol";
66
import {IDisputeKit} from "../interfaces/IDisputeKit.sol";
@@ -36,7 +36,7 @@ contract KlerosCoreUniversity is IArbitratorV2, UUPSProxiable, Initializable {
3636
uint256 feeForJuror; // Arbitration fee paid per juror.
3737
uint256 jurorsForCourtJump; // The appeal after the one that reaches this number of jurors will go to the parent court if any.
3838
uint256[4] timesPerPeriod; // The time allotted to each dispute period in the form `timesPerPeriod[period]`.
39-
mapping(uint256 => bool) supportedDisputeKits; // True if DK with this ID is supported by the court. Note that each court must support classic dispute kit.
39+
mapping(uint256 disputeKitId => bool) supportedDisputeKits; // True if DK with this ID is supported by the court. Note that each court must support classic dispute kit.
4040
bool disabled; // True if the court is disabled. Unused for now, will be implemented later.
4141
}
4242

contracts/src/arbitration/university/SortitionModuleUniversity.sol

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* @custom:deployments: []
99
*/
1010

11-
pragma solidity 0.8.18;
11+
pragma solidity 0.8.24;
1212

1313
import "./KlerosCoreUniversity.sol";
1414
import "./ISortitionModuleUniversity.sol";
@@ -38,7 +38,7 @@ contract SortitionModuleUniversity is ISortitionModuleUniversity, UUPSProxiable,
3838
address public governor; // The governor of the contract.
3939
KlerosCoreUniversity public core; // The core arbitrator contract.
4040
uint256 public disputesWithoutJurors; // The number of disputes that have not finished drawing jurors.
41-
mapping(address => Juror) public jurors; // The jurors.
41+
mapping(address account => Juror) public jurors; // The jurors.
4242
address private transientJuror; // The juror address used between calls within the same transaction.
4343

4444
// ************************************* //

contracts/src/gateway/ForeignGateway.sol

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/// @custom:bounties: []
77
/// @custom:deployments: []
88

9-
pragma solidity 0.8.18;
9+
pragma solidity 0.8.24;
1010

1111
import "./interfaces/IForeignGateway.sol";
1212
import "../proxy/UUPSProxiable.sol";
@@ -39,14 +39,14 @@ contract ForeignGateway is IForeignGateway, UUPSProxiable, Initializable {
3939
// ************************************* //
4040

4141
uint256 internal localDisputeID; // The disputeID must start from 1 as the KlerosV1 proxy governor depends on this implementation. We now also depend on localDisputeID not ever being zero.
42-
mapping(uint96 => uint256) public feeForJuror; // feeForJuror[v2CourtID], it mirrors the value on KlerosCore.
42+
mapping(uint96 courtId => uint256) public feeForJuror; // feeForJuror[v2CourtID], it mirrors the value on KlerosCore.
4343
address public governor;
4444
address public veaOutbox;
4545
uint256 public override homeChainID;
4646
address public override homeGateway;
4747
address public deprecatedVeaOutbox;
4848
uint256 public deprecatedVeaOutboxExpiration;
49-
mapping(bytes32 => DisputeData) public disputeHashtoDisputeData;
49+
mapping(bytes32 disputeHash => DisputeData) public disputeHashtoDisputeData;
5050

5151
// ************************************* //
5252
// * Function Modifiers * //

contracts/src/gateway/HomeGateway.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/// @custom:bounties: []
77
/// @custom:deployments: []
88

9-
pragma solidity 0.8.18;
9+
pragma solidity 0.8.24;
1010

1111
import "./interfaces/IForeignGateway.sol";
1212
import "./interfaces/IHomeGateway.sol";

contracts/src/gateway/interfaces/IForeignGateway.sol

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
/// @custom:bounties: []
77
/// @custom:deployments: []
88

9-
pragma solidity 0.8.18;
9+
pragma solidity 0.8.24;
1010

1111
import "../../arbitration/interfaces/IArbitratorV2.sol";
12-
import "@kleros/vea-contracts/src/interfaces/gateways/IReceiverGateway.sol";
12+
import "@kleros/vea-contracts/interfaces/gateways/IReceiverGateway.sol";
1313

1414
interface IForeignGateway is IArbitratorV2, IReceiverGateway {
1515
/// @dev To be emitted when a dispute is sent to the IHomeGateway.

0 commit comments

Comments
 (0)