github.com/ethereum-optimism/optimism@v1.7.2/op-node/rollup/derive/doc.go (about) 1 // Package derive provides the data transformation functions that take L1 data 2 // and turn it into L2 blocks and results. Certain L2 data is also able to 3 // turned back into L1 data. 4 // 5 // The flow is data is as follows 6 // receipts, batches -> eth.PayloadAttributes, by parsing the L1 data and deriving L2 inputs 7 // l2.PayloadAttributes -> l2.ExecutionPayload, by running the EVM (using an Execution Engine) 8 // L2 block -> Corresponding L1 block info, by parsing the first deposited transaction 9 // 10 // The Payload Attributes derivation stage is a pure function. 11 // The Execution Payload derivation stage relies on the L2 execution engine to perform the state update. 12 // The inversion step is a pure function. 13 // 14 // The steps should be kept separate to enable easier testing. 15 package derive