@@ -4,10 +4,11 @@ use std::fmt::Display;
44use ark_ff:: fields:: arithmetic:: InvalidBigInt ;
55use ark_ff:: Zero ;
66use itertools:: { FoldWhile , Itertools } ;
7- use mina_hasher:: Fp ;
7+ use mina_hasher:: { Fp , Hashable , ROInput } ;
88use mina_p2p_messages:: binprot;
99use mina_p2p_messages:: v2:: { MinaBaseUserCommandStableV2 , MinaTransactionTransactionStableV2 } ;
1010use mina_signer:: CompressedPubKey ;
11+ use mina_signer:: NetworkId ;
1112use openmina_core:: constants:: ConstraintConstants ;
1213use openmina_macros:: SerdeYojsonEnum ;
1314use poseidon:: hash:: params:: { CODA_RECEIPT_UC , MINA_ZKAPP_MEMO } ;
@@ -4215,6 +4216,25 @@ pub mod zkapp_statement {
42154216 }
42164217 }
42174218
4219+ impl Hashable for TransactionCommitment {
4220+ type D = NetworkId ;
4221+
4222+ fn to_roinput ( & self ) -> ROInput {
4223+ let mut roi = ROInput :: new ( ) ;
4224+ roi = roi. append_field ( self . 0 ) ;
4225+ roi
4226+ }
4227+
4228+ fn domain_string ( network_id : NetworkId ) -> Option < String > {
4229+ match network_id {
4230+ NetworkId :: MAINNET => openmina_core:: network:: mainnet:: SIGNATURE_PREFIX ,
4231+ NetworkId :: TESTNET => openmina_core:: network:: devnet:: SIGNATURE_PREFIX ,
4232+ }
4233+ . to_string ( )
4234+ . into ( )
4235+ }
4236+ }
4237+
42184238 #[ derive( Clone , Debug ) ]
42194239 pub struct ZkappStatement {
42204240 pub account_update : TransactionCommitment ,
0 commit comments