-
Notifications
You must be signed in to change notification settings - Fork 0
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
feat(contracts): add Kroma-specific contracts #1
base: feat/apply-kroma-v2.1.0
Are you sure you want to change the base?
Conversation
0ccb2ad
to
74b387a
Compare
28c4ad2
to
8bf7ff6
Compare
74b387a
to
6d43f13
Compare
6d43f13
to
b3bf017
Compare
|
packages/contracts-bedrock/src/governance/KromaGovernanceToken.sol
Outdated
Show resolved
Hide resolved
|
packages/contracts-bedrock/src/universal/KromaMintableERC20.sol
Outdated
Show resolved
Hide resolved
packages/contracts-bedrock/src/universal/KromaMintableERC20Factory.sol
Outdated
Show resolved
Hide resolved
I think if we don't use custom gas token feature, we don't have to deploy it. |
But there are some usages of OP uses version |
I didn't handle the ProxyAdmin part yet in the first PR review, since it seems that we have an option to use a new ProxyAdmin at the same address as OP. |
Please apply |
Also note that Optimism just removed the L2OutputOracle / OptimismPortal and all related deploy/test codes from its monorepo recently in this and this PR. So maybe at the following PR, I think removing the whole |
I added a work related to removing the restriction for MPT first output index, since it would be useless after the MPT migration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Description
Adding kroma-specific contracts, including L1, governance, universal, and libraries.
I moved kroma-specific constants and types into separate Solidity files(
KromaConstants.sol
,KromaTypes.sol
), for future upstream convenience. Regarding the predeploy (Predeploys.sol
), I should put kroma-specific ones inside the existing OP ones, since the library file will be used in the deployment process.Also added OZ upgradeable library with version of
4.9.3
as dependency, since there were some compile errors that some kroma-specific files that imports OZ upgradeable contract induced. The current OP Stack uses version of4.7.3
.Expected L1 Contract Upgrades
This change may induce upgrade of the following L1 contracts. The upgrade will make those contracts to be same with OP.
In terms of KromaPortal, it seems that we can upgrade it to OptimismPortal, but needs more investigation about the effects of that change, so I decided to move KromaPortal temporarily this time.
Expected L1 Contract Upgrades (Kroma-specific)
The following contracts should be upgraded, due to the removal of Validator System V1.
Notes on Formatting & Compile
To format the Solidity files, I used
forge fmt <filename>
, which seems to be used in OP Stack. Note that just executingforge fmt
will change the format of some unrelated Solidity files, since the formatting is not consistent within this repository by default (be cautious).Also did some changes on formats at the comments inside the files.
To build / compile the whole contract, please use
just forge-build-dev
instead ofjust forge-build
. If the LITE mode of Foundry is not turned on, it will take about 6 minutes to compile the whole Solidity files (Note that vanilla OP Stack takes about 4-5 minutes for the compile of Solidity files).