Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions contracts/deploy/upgrade-all.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,11 @@ const deployUpgradeAll: DeployFunction = async (hre: HardhatRuntimeEnvironment)
await upgrade(disputeKitShutter, "reinitialize", [wETH.address]);
await upgrade(disputeKitGated, "reinitialize", [wETH.address]);
await upgrade(disputeKitGatedShutter, "reinitialize", [wETH.address]);
await upgrade(disputeTemplateRegistry, "initialize2", []);
await upgrade(evidence, "initialize2", []);
await upgrade(disputeTemplateRegistry, "reinitialize", []);
await upgrade(evidence, "reinitialize", []);
await upgrade(core, "reinitialize", [wETH.address]);
await upgrade(policyRegistry, "initialize2", []);
await upgrade(sortition, "initialize4", []);
await upgrade(policyRegistry, "reinitialize", []);
await upgrade(sortition, "reinitialize", []);
};
Comment on lines +101 to 106
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Initializer calls may not match target contract ABIs.

You changed four calls to initializer: "reinitialize" (some with empty args). Ensure each target contract actually exposes function reinitialize(...) external with matching arity; several modules in this PR migrated to single-use initializer, not reinitializer functions. Otherwise upgrades will revert at upgradeToAndCall.

Run this audit to confirm ABI/usage alignment:

If any target lacks a matching reinitialize, either:

  • Add a minimal reinitialize wrapper (preferred for migration), or
  • Adjust initializer and args here per contract to invoke the actual available entry point.

🏁 Script executed:

#!/bin/bash
# Contracts the script touches
targets=("DisputeTemplateRegistry" "EvidenceModule" "PolicyRegistry" "SortitionModule" "KlerosCore" "KlerosCoreNeo" "SortitionModuleNeo")

echo "== Searching for reinitialize entry points =="
for t in "${targets[@]}"; do
  fd -t f -a "contracts/src/**/${t}.sol" | while read -r f; do
    echo "-- $f"
    rg -nP 'function\s+reinitialize\s*\(' -C2 "$f" || echo "   (no reinitialize found)"
    rg -nP 'function\s+initialize\s*\('   -C1 "$f" || true
  done
done

echo "== Show how getContractNamesFromNetwork maps names per network =="
fd -a 'contracts.ts|contracts.tsx|contracts.js|contracts.mjs' scripts -t f 2>/dev/null
rg -n 'getContractNamesFromNetwork|getContractNames' -C3 scripts || true

Length of output: 1171


🏁 Script executed:

#!/bin/bash
# Find all Solidity files under contracts/ and search for reinitialize and initialize functions
echo "== Solidity files under contracts/ =="
find contracts -type f -name '*.sol' | sed 's/^/-- /'
echo
echo "== Search each for reinitialize and initialize entry points =="
for f in $(find contracts -type f -name '*.sol'); do
  echo "-- $f"
  rg -nP 'function\s+reinitialize\s*\(' -C2 "$f" || echo "   (no reinitialize found)"
  rg -nP 'function\s+initialize\s*\(' -C2 "$f" || true
done

Length of output: 49090


Replace reinitialize calls with actual initializers and correct args
At contracts/deploy/upgrade-all.ts (lines 101–106), the script invokes reinitialize, but none of the target implementations define such a function. Either add lightweight reinitialize wrappers or, more directly, call their existing initialize(...) entry points with the proper parameters:

  • DisputeTemplateRegistry, EvidenceModule, PolicyRegistry: initialize(owner)
  • SortitionModule: initialize(owner, core, maxDrawingTime, rng)
  • KlerosCore: initialize(owner, guardian, sortitionModuleAddress, wETH.address)
🤖 Prompt for AI Agents
In contracts/deploy/upgrade-all.ts around lines 101 to 106, the script calls a
non-existent reinitialize(...) on several upgraded implementations; replace
those calls with the actual initialize(...) entrypoints and correct parameters:
call DisputeTemplateRegistry.initialize(owner),
EvidenceModule.initialize(owner), PolicyRegistry.initialize(owner),
SortitionModule.initialize(owner, core.address, maxDrawingTime, rng.address) and
KlerosCore.initialize(owner, guardian, sortition.address, wETH.address). Ensure
the variables used (owner, guardian, core/sortition addresses, maxDrawingTime,
rng) are in scope and pass the addresses where the initialize signatures expect
them.


deployUpgradeAll.tags = ["UpgradeAll"];
Expand Down
8 changes: 2 additions & 6 deletions contracts/src/arbitration/DisputeTemplateRegistry.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import "./interfaces/IDisputeTemplateRegistry.sol";
/// @title Dispute Template Registry
/// @dev A contract to maintain a registry of dispute templates.
contract DisputeTemplateRegistry is IDisputeTemplateRegistry, UUPSProxiable, Initializable {
string public constant override version = "0.8.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Storage * //
Expand Down Expand Up @@ -40,14 +40,10 @@ contract DisputeTemplateRegistry is IDisputeTemplateRegistry, UUPSProxiable, Ini

/// @dev Initializer
/// @param _owner Owner of the contract.
function initialize(address _owner) external reinitializer(1) {
function initialize(address _owner) external initializer {
owner = _owner;
}

function initialize2() external reinitializer(2) {
// NOP
}

// ************************ //
// * Governance * //
// ************************ //
Expand Down
8 changes: 2 additions & 6 deletions contracts/src/arbitration/KlerosCore.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {KlerosCoreBase, IDisputeKit, ISortitionModule, IERC20} from "./KlerosCor
/// Core arbitrator contract for Kleros v2.
/// Note that this contract trusts the PNK token, the dispute kit and the sortition module contracts.
contract KlerosCore is KlerosCoreBase {
string public constant override version = "0.10.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Constructor * //
Expand Down Expand Up @@ -43,7 +43,7 @@ contract KlerosCore is KlerosCoreBase {
bytes memory _sortitionExtraData,
ISortitionModule _sortitionModuleAddress,
address _wNative
) external reinitializer(1) {
) external initializer {
__KlerosCoreBase_initialize(
_owner,
_guardian,
Expand All @@ -59,10 +59,6 @@ contract KlerosCore is KlerosCoreBase {
);
}

function reinitialize(address _wNative) external reinitializer(6) {
wNative = _wNative;
}

// ************************************* //
// * Governance * //
// ************************************* //
Expand Down
6 changes: 1 addition & 5 deletions contracts/src/arbitration/KlerosCoreNeo.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
/// Core arbitrator contract for Kleros v2.
/// Note that this contract trusts the PNK token, the dispute kit and the sortition module contracts.
contract KlerosCoreNeo is KlerosCoreBase {
string public constant override version = "0.10.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Storage * //
Expand Down Expand Up @@ -70,10 +70,6 @@ contract KlerosCoreNeo is KlerosCoreBase {
jurorNft = _jurorNft;
}

function reinitialize(address _wNative) external reinitializer(6) {
wNative = _wNative;
}

// ************************************* //
// * Governance * //
// ************************************* //
Expand Down
8 changes: 2 additions & 6 deletions contracts/src/arbitration/PolicyRegistry.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import "../proxy/Initializable.sol";
/// @title PolicyRegistry
/// @dev A contract to maintain a policy for each court.
contract PolicyRegistry is UUPSProxiable, Initializable {
string public constant override version = "0.8.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Events * //
Expand Down Expand Up @@ -47,14 +47,10 @@ contract PolicyRegistry is UUPSProxiable, Initializable {

/// @dev Constructs the `PolicyRegistry` contract.
/// @param _owner The owner's address.
function initialize(address _owner) external reinitializer(1) {
function initialize(address _owner) external initializer {
owner = _owner;
}
Comment on lines +50 to 52
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Guard initialize() against zero owner and confirm initializer-vs-reinitializer migration plan.

  • Using initializer blocks reuse on already-initialized proxies; ensure migration uses fresh proxies or a dedicated reinitializer for upgrades.
  • Also guard against accidentally bricking the proxy with owner = address(0).

Apply:

 function initialize(address _owner) external initializer {
-        owner = _owner;
+        if (_owner == address(0)) revert ZeroAddress();
+        owner = _owner;
 }

Add the error:

 error OwnerOnly();
+error ZeroAddress();

Optional: also validate in changeOwner:

 function changeOwner(address _owner) external onlyByOwner {
-        owner = _owner;
+        if (_owner == address(0)) revert ZeroAddress();
+        owner = _owner;
 }

Run to sanity-check deploy/migration scripts:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Any remaining initialize2/3/4 calls in deploy scripts?"
rg -n -C2 -g 'contracts/deploy/**' 'initialize[234]\s*\(' || true

echo "Places calling initialize(...) in deploy scripts:"
rg -n -C2 -g 'contracts/deploy/**' '\.initialize\s*\(' || true

echo "Contracts still using reinitializer():"
rg -n --type=sol 'reinitializer\s*\(' || true

Length of output: 540


Guard initialize and changeOwner against zero address & confirm initializer vs reinitializer migration

  • In initialize():
        function initialize(address _owner) external initializer {
    -       owner = _owner;
    +       if (_owner == address(0)) revert ZeroAddress();
    +       owner = _owner;
        }
  • Define the new error:
    error OwnerOnly();
    +error ZeroAddress();
  • Also in changeOwner():
        function changeOwner(address _owner) external onlyByOwner {
    -       owner = _owner;
    +       if (_owner == address(0)) revert ZeroAddress();
    +       owner = _owner;
        }
  • Confirm your migration/deployment strategy—no reinitializer usage was detected in contracts/deploy/**, so ensure you either deploy fresh proxies or add dedicated reinitializer functions for future upgrades.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
function initialize(address _owner) external initializer {
owner = _owner;
}
// --- add this alongside your other custom errors ---
error OwnerOnly();
error ZeroAddress();
// ...
function initialize(address _owner) external initializer {
if (_owner == address(0)) revert ZeroAddress();
owner = _owner;
}
// ...
function changeOwner(address _owner) external onlyByOwner {
if (_owner == address(0)) revert ZeroAddress();
owner = _owner;
}
🤖 Prompt for AI Agents
In contracts/src/arbitration/PolicyRegistry.sol around lines 50-52, add explicit
checks to prevent setting the owner to the zero address in both initialize() and
changeOwner(): declare a custom error (e.g., ZeroAddress()) at the top of the
contract and revert with that error when _owner or newOwner == address(0);
ensure changeOwner also enforces appropriate access control (onlyOwner) if not
already enforced; finally, validate your deployment/migration approach: either
deploy fresh proxies that call initialize() once or add and document a
reinitializer(uint256) function for future upgrades (don’t rely on initializer
when planning reinitializer-based upgrades).


function initialize2() external reinitializer(2) {
// NOP
}

// ************************************* //
// * Governance * //
// ************************************* //
Expand Down
8 changes: 2 additions & 6 deletions contracts/src/arbitration/SortitionModule.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {SortitionModuleBase, KlerosCore, IRNG} from "./SortitionModuleBase.sol";
/// @title SortitionModule
/// @dev A factory of trees that keeps track of staked values for sortition.
contract SortitionModule is SortitionModuleBase {
string public constant override version = "0.9.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Constructor * //
Expand All @@ -30,14 +30,10 @@ contract SortitionModule is SortitionModuleBase {
uint256 _minStakingTime,
uint256 _maxDrawingTime,
IRNG _rng
) external reinitializer(1) {
) external initializer {
__SortitionModuleBase_initialize(_owner, _core, _minStakingTime, _maxDrawingTime, _rng);
}

function initialize4() external reinitializer(4) {
// NOP
}

// ************************************* //
// * Governance * //
// ************************************* //
Expand Down
6 changes: 1 addition & 5 deletions contracts/src/arbitration/SortitionModuleNeo.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {SortitionModuleBase, KlerosCore, IRNG, StakingResult} from "./SortitionM
/// @title SortitionModuleNeo
/// @dev A factory of trees that keeps track of staked values for sortition.
contract SortitionModuleNeo is SortitionModuleBase {
string public constant override version = "0.9.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Storage * //
Expand Down Expand Up @@ -48,10 +48,6 @@ contract SortitionModuleNeo is SortitionModuleBase {
maxTotalStaked = _maxTotalStaked;
}

function initialize4() external reinitializer(4) {
// NOP
}

// ************************************* //
// * Governance * //
// ************************************* //
Expand Down
12 changes: 2 additions & 10 deletions contracts/src/arbitration/devtools/KlerosCoreRuler.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import "../../libraries/Constants.sol";
contract KlerosCoreRuler is IArbitratorV2, UUPSProxiable, Initializable {
using SafeERC20 for IERC20;

string public constant override version = "0.8.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Enums / Structs * //
Expand Down Expand Up @@ -175,11 +175,7 @@ contract KlerosCoreRuler is IArbitratorV2, UUPSProxiable, Initializable {
/// @param _owner The owner's address.
/// @param _pinakion The address of the token contract.
/// @param _courtParameters Numeric parameters of General court (minStake, alpha, feeForJuror and jurorsForCourtJump respectively).
function initialize(
address _owner,
IERC20 _pinakion,
uint256[4] memory _courtParameters
) external reinitializer(1) {
function initialize(address _owner, IERC20 _pinakion, uint256[4] memory _courtParameters) external initializer {
owner = _owner;
pinakion = _pinakion;

Expand Down Expand Up @@ -210,10 +206,6 @@ contract KlerosCoreRuler is IArbitratorV2, UUPSProxiable, Initializable {
);
}

function initialize2() external reinitializer(2) {
// NOP
}

// ************************************* //
// * Governance * //
// ************************************* //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {DisputeKitClassicBase, KlerosCore} from "./DisputeKitClassicBase.sol";
/// - an incentive system: equal split between coherent votes,
/// - an appeal system: fund 2 choices only, vote on any choice.
contract DisputeKitClassic is DisputeKitClassicBase {
string public constant override version = "0.13.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Constructor * //
Expand All @@ -32,14 +32,10 @@ contract DisputeKitClassic is DisputeKitClassicBase {
KlerosCore _core,
address _wNative,
uint256 _jumpDisputeKitID
) external reinitializer(1) {
) external initializer {
__DisputeKitClassicBase_initialize(_owner, _core, _wNative, _jumpDisputeKitID);
}

function reinitialize(uint256 _jumpDisputeKitID) external reinitializer(10) {
jumpDisputeKitID = _jumpDisputeKitID;
}

// ************************ //
// * Governance * //
// ************************ //
Expand Down
8 changes: 2 additions & 6 deletions contracts/src/arbitration/dispute-kits/DisputeKitGated.sol
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ interface IBalanceHolderERC1155 {
/// - an incentive system: equal split between coherent votes,
/// - an appeal system: fund 2 choices only, vote on any choice.
contract DisputeKitGated is DisputeKitClassicBase {
string public constant override version = "0.13.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Constructor * //
Expand All @@ -48,14 +48,10 @@ contract DisputeKitGated is DisputeKitClassicBase {
KlerosCore _core,
address _wNative,
uint256 _jumpDisputeKitID
) external reinitializer(1) {
) external initializer {
__DisputeKitClassicBase_initialize(_owner, _core, _wNative, _jumpDisputeKitID);
}

function reinitialize(uint256 _jumpDisputeKitID) external reinitializer(10) {
jumpDisputeKitID = _jumpDisputeKitID;
}

// ************************ //
// * Governance * //
// ************************ //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ interface IBalanceHolderERC1155 {
/// - an incentive system: equal split between coherent votes,
/// - an appeal system: fund 2 choices only, vote on any choice.
contract DisputeKitGatedShutter is DisputeKitClassicBase {
string public constant override version = "0.13.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Storage * //
Expand Down Expand Up @@ -82,14 +82,10 @@ contract DisputeKitGatedShutter is DisputeKitClassicBase {
KlerosCore _core,
address _wNative,
uint256 _jumpDisputeKitID
) external reinitializer(1) {
) external initializer {
__DisputeKitClassicBase_initialize(_owner, _core, _wNative, _jumpDisputeKitID);
}

function reinitialize(uint256 _jumpDisputeKitID) external reinitializer(10) {
jumpDisputeKitID = _jumpDisputeKitID;
}

// ************************ //
// * Governance * //
// ************************ //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {DisputeKitClassicBase, KlerosCore} from "./DisputeKitClassicBase.sol";
/// - an incentive system: equal split between coherent votes,
/// - an appeal system: fund 2 choices only, vote on any choice.
contract DisputeKitShutter is DisputeKitClassicBase {
string public constant override version = "0.13.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Storage * //
Expand Down Expand Up @@ -66,14 +66,10 @@ contract DisputeKitShutter is DisputeKitClassicBase {
KlerosCore _core,
address _wNative,
uint256 _jumpDisputeKitID
) external reinitializer(1) {
) external initializer {
__DisputeKitClassicBase_initialize(_owner, _core, _wNative, _jumpDisputeKitID);
}

function reinitialize(uint256 _jumpDisputeKitID) external reinitializer(10) {
jumpDisputeKitID = _jumpDisputeKitID;
}

// ************************ //
// * Governance * //
// ************************ //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ interface IProofOfHumanity {
/// - an incentive system: equal split between coherent votes,
/// - an appeal system: fund 2 choices only, vote on any choice.
contract DisputeKitSybilResistant is DisputeKitClassicBase {
string public constant override version = "0.13.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Storage * //
Expand Down Expand Up @@ -47,7 +47,7 @@ contract DisputeKitSybilResistant is DisputeKitClassicBase {
IProofOfHumanity _poh,
address _wNative,
uint256 _jumpDisputeKitID
) external reinitializer(1) {
) external initializer {
__DisputeKitClassicBase_initialize(_owner, _core, _wNative, _jumpDisputeKitID);
poh = _poh;
singleDrawPerJuror = true;
Expand Down
8 changes: 2 additions & 6 deletions contracts/src/arbitration/evidence/EvidenceModule.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import "../../proxy/Initializable.sol";

/// @title Evidence Module
contract EvidenceModule is IEvidence, Initializable, UUPSProxiable {
string public constant override version = "0.8.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Storage * //
Expand Down Expand Up @@ -37,14 +37,10 @@ contract EvidenceModule is IEvidence, Initializable, UUPSProxiable {

/// @dev Initializer.
/// @param _owner The owner's address.
function initialize(address _owner) external reinitializer(1) {
function initialize(address _owner) external initializer {
owner = _owner;
}
Comment on lines +40 to 42
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Add zero-address guard in initialize().
Prevents locking upgrades/ownership if miscalled.

 function initialize(address _owner) external initializer {
-        owner = _owner;
+        if (_owner == address(0)) revert ZeroAddress();
+        owner = _owner;
 }

And declare the error:

 error OwnerOnly();
+error ZeroAddress();
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
function initialize(address _owner) external initializer {
owner = _owner;
}
// --- around existing error declarations ---
error OwnerOnly();
error ZeroAddress();
// --- in contracts/src/arbitration/evidence/EvidenceModule.sol ---
function initialize(address _owner) external initializer {
if (_owner == address(0)) revert ZeroAddress();
owner = _owner;
}
🤖 Prompt for AI Agents
In contracts/src/arbitration/evidence/EvidenceModule.sol around lines 40-42,
initialize(address _owner) currently sets owner directly; add a zero-address
guard and declare a custom error. Declare an error like InvalidZeroAddress()
near the top of the contract (or with other custom errors), then in initialize()
check that _owner != address(0) and revert with InvalidZeroAddress() if it is;
finally proceed to set owner = _owner. This prevents accidental locking and
follows project error conventions.


function initialize2() external reinitializer(2) {
// NOP
}

// ************************ //
// * Governance * //
// ************************ //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import "../../libraries/Constants.sol";
contract KlerosCoreUniversity is IArbitratorV2, UUPSProxiable, Initializable {
using SafeERC20 for IERC20;

string public constant override version = "0.8.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Enums / Structs * //
Expand Down Expand Up @@ -207,7 +207,7 @@ contract KlerosCoreUniversity is IArbitratorV2, UUPSProxiable, Initializable {
uint256[4] memory _courtParameters,
uint256[4] memory _timesPerPeriod,
ISortitionModuleUniversity _sortitionModuleAddress
) external reinitializer(1) {
) external initializer {
owner = _owner;
instructor = _instructor;
pinakion = _pinakion;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import "../../libraries/Constants.sol";
/// @title SortitionModuleUniversity
/// @dev An adapted version of the SortitionModule contract for educational purposes.
contract SortitionModuleUniversity is ISortitionModuleUniversity, UUPSProxiable, Initializable {
string public constant override version = "0.8.0";
string public constant override version = "2.0.0";

// ************************************* //
// * Enums / Structs * //
Expand Down Expand Up @@ -87,7 +87,7 @@ contract SortitionModuleUniversity is ISortitionModuleUniversity, UUPSProxiable,

/// @dev Initializer (constructor equivalent for upgradable contracts).
/// @param _core The KlerosCore.
function initialize(address _owner, KlerosCoreUniversity _core) external reinitializer(1) {
function initialize(address _owner, KlerosCoreUniversity _core) external initializer {
owner = _owner;
core = _core;
}
Expand Down
2 changes: 1 addition & 1 deletion contracts/src/gateway/ForeignGateway.sol
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ contract ForeignGateway is IForeignGateway, UUPSProxiable, Initializable {
address _veaOutbox,
uint256 _homeChainID,
address _homeGateway
) external reinitializer(1) {
) external initializer {
owner = _owner;
veaOutbox = _veaOutbox;
homeChainID = _homeChainID;
Expand Down
2 changes: 1 addition & 1 deletion contracts/src/gateway/HomeGateway.sol
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ contract HomeGateway is IHomeGateway, UUPSProxiable, Initializable {
uint256 _foreignChainID,
address _foreignGateway,
IERC20 _feeToken
) external reinitializer(1) {
) external initializer {
owner = _owner;
arbitrator = _arbitrator;
veaInbox = _veaInbox;
Expand Down
2 changes: 1 addition & 1 deletion contracts/src/proxy/Initializable.sol
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ abstract contract Initializable {
* @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,
* `onlyInitializing` functions can be used to initialize parent contracts.
*
* Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a
* Similar to `initializer()`, except that functions marked with `initializer` can be nested in the context of a
* constructor.
*
* Emits an {Initialized} event.
Expand Down
Loading
Loading