Closed seolaoh closed 2 weeks ago
This update introduces various enhancements and modifications across multiple files in the Kroma project. Key changes include updates to storage layout definitions and hexadecimal values, deployment of tokens and mint managers, adjustments to gas costs in tests, and additions of new ownership transfer mechanisms. The modifications ensure more accurate handling of recipients during token distribution and introduce new events for consistent state tracking. The assertion checks during deployment have been adjusted accordingly.
Files/Directories | Change Summaries |
---|---|
kroma-bindings/bindings/mintmanager_more.go |
Updated MintManagerStorageLayoutJSON and MintManagerDeployedBin constants. |
op-e2e/e2eutils/setup.go |
Added deployment, ownership acceptance, proxy upgrade, initialization, and distribution functionalities for L1MintManager and GovernanceToken . |
packages/contracts/.gas-snapshot |
Adjusted gas costs in various tests within GovernanceToken_Test and MintManagerTest classes. |
packages/contracts/.storage-layout |
Added _pendingOwner field in GovernanceToken and MintManager classes, affecting storage slots and offsets. |
packages/contracts/contracts/governance/GovernanceToken.sol |
Updated contract inheritance to Ownable2StepUpgradeable , removed ERC20Burnable , and added Mint and Burn events. |
packages/contracts/contracts/governance/MintManager.sol |
Switched to Ownable2Step , added token distribution logic with recipient shares, and ownership management functions. |
packages/contracts/contracts/test/GovernanceToken.t.sol |
Added Mint and Burn events, updated setup and test functions to include additional assertions and ownership changes. |
packages/contracts/contracts/test/KromaVestingWallet.t.sol |
Added function calls vm.prank(tokenOwner) and token.acceptOwnership() before token.mint() . |
packages/contracts/contracts/test/MintManager.t.sol |
Added owner and pending owner checks, logic for ownership transfer and acceptance, and additional success and revert tests. |
packages/contracts/deploy/.../018-L1MintManager.ts |
Renamed contract variable from 'owner' to 'pendingOwner' in deployFn function. |
packages/contracts/deploy/.../019-L1GovernanceToken.ts |
Modified assertion check from 'owner' to 'pendingOwner' in assertContractVariable function. |
packages/contracts/deploy/.../012-MintManager.ts |
Renamed contract variable from 'owner' to 'pendingOwner' . |
packages/contracts/deploy/.../013-GovernanceToken.ts |
Modified contract variable assertion from 'owner' to 'pendingOwner' in deployFn function. |
[!TIP]
Early access features: enabled
We are currently testing the following features in early access: - **OpenAI `gpt-4o` model for code reviews and chat**: OpenAI claims that this model is better at understanding and generating code than the previous models. We seek your feedback over the next few weeks before making it generally available. Note: - You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file. - Please join our [Discord Community](https://discord.com/invite/GsXnASn26c) to provide feedback and report issues. - OSS projects are currently opted into early access features by default.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Could you update the scenario for deployments you wrote in confluence?
Could you update the scenario for deployments you wrote in confluence?
I already updated it.
Should this PR be merged to dev
directly?
Should this PR be merged to
dev
directly?
No, it should be merged after #335. Or it can be merged before #335 with moving the commit related to governance token from this PR to that PR.
Description
Since we use
Ownable2Step
contract to set the owner ofGovernanceToken
andMintManager
, the new owner should accept the ownership. The purpose is to reduce human error, so I thought it is more appropriate to follow this step when deploying the contracts via deploy script. So the deploy step is changed like below.Deploy Process
L1GovernanceTokenProxy
contractL1MintManager
contractmintManagerOwner
is set aspendingOwner
ofL1MintManager
L1GovernanceToken
contract, upgrade proxy, and initializeL1MintManager
is set aspendingOwner
ofL1GovernanceToken
mintManagerOwner
is set as admin ofL1GovernanceTokenProxy
L1MintManager.acceptOwnership()
,L1MintManager.acceptOwnershipOfToken()
bymintManagerOwner
> confirm ownership transfer ofL1MintManager
,L1GovernanceToken
L1GovernanceTokenProxy
to zero address bymintManagerOwner
Test Transactions on Holesky
acceptOwnership
ofL1MintManager
acceptOwnership
ofL1GovernanceToken