Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rollupManager initializer versioning #314

Merged
merged 4 commits into from
Aug 29, 2024
Merged
Show file tree
Hide file tree
Changes from 2 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
14 changes: 14 additions & 0 deletions contracts/v2/PolygonRollupManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,8 @@ contract PolygonRollupManager is
bytes32 internal constant _EMERGENCY_COUNCIL_ADMIN =
keccak256("EMERGENCY_COUNCIL_ADMIN");

string internal constant _ROLLUP_MANAGER_VERSION_PESSIMISTIC = "pessimistic";
Copy link
Contributor

Choose a reason for hiding this comment

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

I would make this public, so it is easy to check from the SC directly.
Also, _ROLLUP_MANAGER_VERSION_PESSIMISTIC should have a generic naming like _ROLLUP_MANAGER_VERSION and it value reflects the version.

Copy link
Collaborator

Choose a reason for hiding this comment

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

maybe it's worth it to have a constnat that always have the same name, and public, to be able to easy retrieval from the node 🤔 something like currentVersion!?¿

Copy link
Contributor

Choose a reason for hiding this comment

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

yep, agree. See comment above xD


// Global Exit Root address
IPolygonZkEVMGlobalExitRootV2 public immutable globalExitRootManager;

Expand Down Expand Up @@ -382,6 +384,11 @@ contract PolygonRollupManager is
*/
event SetBatchFee(uint256 newBatchFee);

/**
* @dev Emitted when rollup manager is upgraded
*/
event UpdateRollupManagerVersion(string rollupManagerVersion);

/**
* @param _globalExitRootManager Global exit root manager address
* @param _pol POL token address
Expand All @@ -400,6 +407,13 @@ contract PolygonRollupManager is
_disableInitializers();
}

/**
* Initializer function to set new rollup manager version
*/
function initialize() external virtual reinitializer(3) {
emit UpdateRollupManagerVersion(_ROLLUP_MANAGER_VERSION_PESSIMISTIC);
}

///////////////////////////////////////
// Rollups management functions
///////////////////////////////////////
Expand Down
75 changes: 0 additions & 75 deletions contracts/v2/mocks/PolygonRollupManagerMockInternalTest.sol

This file was deleted.

2 changes: 2 additions & 0 deletions test/contractsv2/PolygonRollupManager-Pessimistic.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ describe("Polygon Rollup Manager with Polygon Pessimistic Consensus", () => {
emergencyCouncil.address
);

await expect(rollupManagerContract.initialize()).to.emit(rollupManagerContract, "UpdateRollupManagerVersion")

// fund sequencer address with Matic tokens
await polTokenContract.transfer(trustedSequencer.address, ethers.parseEther("1000"));
});
Expand Down
Loading