On static transactions:

Transactions should be fully static at submission.

Why: Sequencers must be able to reason about transactions without executing them. And validators should be able to reason about block validity without executing the block.

All sequencing-relevant inputs including but not limited to:

1. Fee Payer

2. Resource usage and fees charged

3. Insructions

4. Read and write access list

Should be contained within the transcation.

In fact, even which accounts are loaded should be static and not manipulable in the runtime to avoid cache misses (you certainly should be able to not read something that you asked for but you should not be able to read something that you didn't ask for).

If the sequencer can’t simulate your transaction’s account locks and resource use without access to the runtime, its too dynamic.