Sobre las transacciones estáticas:

Las transacciones deben ser completamente estáticas en el momento de la presentación.

Por qué: Los secuenciadores deben ser capaces de razonar sobre las transacciones sin ejecutarlas. Y los validadores deben ser capaces de razonar sobre la validez del bloque sin ejecutar el bloque.

Todos los inputs relevantes para la secuenciación, incluyendo pero no limitándose a:

1. Pagador de tarifas
2. Uso de recursos y tarifas cobradas
3. Instrucciones
4. Lista de acceso de lectura y escritura

Deben estar contenidas dentro de la transacción.

De hecho, incluso qué cuentas están cargadas debe ser estático y no manipulable en tiempo de ejecución para evitar fallos de caché (ciertamente deberías poder no leer algo que pediste, pero no deberías poder leer algo que no pediste).

Si el secuenciador no puede simular los bloqueos de cuentas y el uso de recursos de tu transacción sin acceso al tiempo de ejecución, es demasiado dinámico.