Skip to content

Upgrade the Solidity compiler to simplify pre-deploy contract code #495

@karlfloersch

Description

@karlfloersch

Our predeploys are currently written with an extremely error prone pattern using the SafeExecutionManagerWrapper. An example can be found here:

Lib_SafeExecutionManagerWrapper.safeSSTORE(
KEY_INITIALIZED,
Lib_Bytes32Utils.fromBool(true)
);
Lib_SafeExecutionManagerWrapper.safeSSTORE(
KEY_OWNER,
Lib_Bytes32Utils.fromAddress(_owner)
);
Lib_SafeExecutionManagerWrapper.safeSSTORE(
KEY_ALLOW_ARBITRARY_DEPLOYMENT,
Lib_Bytes32Utils.fromBool(_allowArbitraryDeployment)
);

This (anti) pattern was particularly tricky when implementing RLP transactions because we need to compile REVERT and that proved difficult for the RLP contracts. This change is therefore blocking RLP.

Describe the solution you'd like
Implement kall which allows contracts to call low level execution manager functions when compiled with the normal OVM compiler.

TODO:

Metadata

Metadata

Labels

C-featureCategory: features

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions