Refactored all mina transactions related code into a separate crate#159
Merged
Refactored all mina transactions related code into a separate crate#159
Conversation
scaraven
requested changes
Feb 16, 2026
Member
scaraven
left a comment
There was a problem hiding this comment.
Most of it looks good. I think the roles of pallas_compat.rs and pallas_message.rs are still a bit fuzzy and that instead all of the mina specific logic should go into mina-tx. FROST should not need to ever be aware of Mina-specific structs.
Comment on lines
+37
to
+47
| /// Create a new `PallasMessage` from raw bytes. | ||
| /// | ||
| /// This constructor treats input bytes as opaque payload and defaults to | ||
| /// TESTNET legacy hashing. | ||
| pub fn new(input: Vec<u8>) -> Self { | ||
| Self { | ||
| input: ROInput::new().append_bytes(&input), | ||
| network_id: NetworkId::TESTNET, | ||
| is_legacy: true, | ||
| } | ||
| } |
Member
There was a problem hiding this comment.
This should be deleted, although it's not the end of the world if someone accidentally signs a TESTNET transaction, we shouldn't silently default to a transaction that we don't understand and instead err on the side of caution by returning an error
Member
Author
There was a problem hiding this comment.
I am moving this to a separate issue as we will have to update tests:
…nstead of PallasMessage in client
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
closes #121
Summary
This PR completes the transaction-layer extraction from
frost-bluepallasintomina-txand refactorsfrost-bluepallasto be generic over challenge message type.Main changes
mina-txas the Mina transaction domain crate:TransactionEnvelope, legacy/zkApp)Sig,PubKeySer,TransactionSignature)frost-bluepallas:transactions/*,graphql.rs,base58.rsPallasMessageout offrost-bluepallasintomina-tx:mina-tx::pallas_messageChallengeMessageimpl forPallasMessagelives inmina-tx(behind compat feature)mina-tx:frost-compat->frost-bluepallas-compatfrost-bluepallasciphersuite to generic form:BluePallas<M>ChallengeMessagetrait for message-specific challenge logicM-parameterizedfrost-bluepallas(H1/H3/H4/H5/HDKG/HID) and moved Mina tx/message-specific challenge/hash logic tomina-txmina-frost-clientto usemina-txAPIs and centralizedBluePallasSuitealiasPallasMessage-bound suite in shared helper modulesResulting boundaries
frost-bluepallas: FROST ciphersuite + crypto mechanics, generic over message challenge providermina-tx: Mina transaction domain +PallasMessage+ BluePallas compat bridgemina-frost-client: CLI/orchestration using both