fix(interop): check for spend purpose when matching redeemers (#486)

This commit is contained in:
Santiago Carmuega 2024-07-13 14:43:52 -03:00 committed by GitHub
parent 2c9c98a499
commit 15538cd0bf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2,7 +2,10 @@ use std::{collections::HashMap, ops::Deref};
use pallas_codec::utils::KeyValuePairs;
use pallas_crypto::hash::Hash;
use pallas_primitives::{alonzo, babbage, conway};
use pallas_primitives::{
alonzo, babbage,
conway::{self, RedeemerTag},
};
use pallas_traverse as trv;
use trv::OriginalHash;
@ -62,7 +65,9 @@ impl<C: LedgerContext> Mapper<C> {
) -> u5c::TxInput {
let redeemers = tx.redeemers();
let redeemer = redeemers.iter().find(|r| (r.index() as u64) == i.index());
let redeemer = redeemers
.iter()
.find(|r| r.tag() == RedeemerTag::Spend && (r.index() as u64) == i.index());
let as_txref = (*i.hash(), i.index() as u32);