MinaProtocol / mina

Mina is a cryptocurrency protocol with a constant size blockchain, improving scaling while maintaining decentralization and security.
https://minaprotocol.com
Apache License 2.0
1.97k stars 523 forks source link

Refactor Zkapp_command_logic for improved testability #12544

Open Sventimir opened 1 year ago

Sventimir commented 1 year ago

The module src/lib/transaction_logic/zkapp_command_logic.ml contains almost 2000 lines of the most basic operations needed for executing ZK app commands. It's included in Mina_transaction_logic functor and then used in 2 places: src/lib/transaction_logic/mina_transaction_logic.ml and also in src/lib/transaction_snarks.ml. We need to write tests for this module, because currently there are none. This is a groundwork module and it definitely should be tested thoroughly.

kantp commented 1 year ago

This will be resolved in #12552.

kantp commented 1 year ago

The refactorings are blocked on ongoing work in the module, but we are writing tests without the refactoring for now.