Skip to content
Merged
Changes from all 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
4 changes: 2 additions & 2 deletions packages/docs/protocol-specifications/ovm/ovm-components.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ The execution manager interfaces with "code contracts," which are EVM contracts

![The Execution Manager](https://i.imgur.com/9eMuXwc.png)

The execution manager contract can be found [here](https://github.com/ethereum-optimism/optimism-monorepo/blob/master/packages/ovm/src/contracts/ExecutionManager.sol).
The execution manager contract can be found [here](https://github.com/ethereum-optimism/contracts-v2/blob/master/contracts/optimistic-ethereum/OVM/execution/OVM_ExecutionManager.sol).

## Safety Checker

To ensure that the execution of an OVM transaction is deterministic for a given sandbox state, we must enforce that **only** the container interface described above is used. To accomplish this, we have a "purity checker." The purity checker analyzes the low-level assembly bytecode of an EVM contract to tell the execution manager whether the code conforms to the OVM interface. If it does not, then the execution manager does not allow such a contract to be created or used in a fraud proof.

![The Safety Checker](https://i.imgur.com/JYKNqNC.png)

The safety checker contract can be found [here](https://github.com/ethereum-optimism/optimism-monorepo/blob/master/packages/ovm/src/contracts/SafetyChecker.sol)
The safety checker contract can be found [here](https://github.com/ethereum-optimism/contracts-v2/blob/master/contracts/optimistic-ethereum/OVM/execution/OVM_SafetyChecker.sol)

## Transpiler

Expand Down