-
Notifications
You must be signed in to change notification settings - Fork 15
Description
Summary
Currently, contract bytecode, contract module and contract metadata are stored at the global scope, which implies that after session commit, if session has done a deployment, the deployment cannot be undone. This implies similar logic for migration, as migration involves deployment. It would be desired to have contract bytecode/module/medadata storage performed at commit scope, so that upon commit the main scope is not overwritten. The proper place for main overwrite should be commit finalisation, not a session commit.
Possible solution design or implementation
Extend the storage mechanism so that contract's bytecode/module/metadata are stored in commit storage rather than main storage. Upon commit finalisation, move commit store content into the main store.
Additional context
This is related to Rusk migration tests as per #3898