Skip to content

Commit 066a848

Browse files
author
Daniel Kuehr
committed
Implement Hashable for TransactionCommitment (needed by fuzzer)
1 parent 80af68b commit 066a848

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

ledger/src/scan_state/transaction_logic.rs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ use std::fmt::Display;
44
use ark_ff::fields::arithmetic::InvalidBigInt;
55
use ark_ff::Zero;
66
use itertools::{FoldWhile, Itertools};
7-
use mina_hasher::Fp;
7+
use mina_hasher::{Fp, Hashable, ROInput};
88
use mina_p2p_messages::binprot;
99
use mina_p2p_messages::v2::{MinaBaseUserCommandStableV2, MinaTransactionTransactionStableV2};
1010
use mina_signer::CompressedPubKey;
11+
use mina_signer::NetworkId;
1112
use openmina_core::constants::ConstraintConstants;
1213
use openmina_macros::SerdeYojsonEnum;
1314
use 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

Comments
 (0)