diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs index 973e412f..c23c341e 100644 --- a/crates/core/src/lib.rs +++ b/crates/core/src/lib.rs @@ -460,7 +460,7 @@ pub enum ChainError { #[error("invalid proposal params")] InvalidProposalParams, - #[error("phase-1 script rejected the transaction")] + #[error("phase-1 script rejected the transaction: {0}")] Phase1ValidationRejected(#[from] pallas::ledger::validate::utils::ValidationError), #[error("couldn't evaluate phase-2 script: {0}")] diff --git a/src/serve/grpc/watch.rs b/src/serve/grpc/watch.rs index 87cb4033..2e5c2a61 100644 --- a/src/serve/grpc/watch.rs +++ b/src/serve/grpc/watch.rs @@ -43,16 +43,19 @@ fn outputs_match_asset( asset_pattern: &u5c::cardano::AssetPattern, outputs: &[u5c::cardano::TxOutput], ) -> bool { - (asset_pattern.asset_name.is_empty() && asset_pattern.policy_id.is_empty()) - || outputs.iter().any(|o| { - o.assets.iter().any(|ma| { - ma.policy_id.eq(&asset_pattern.policy_id) - && ma - .assets - .iter() - .any(|a| a.name.eq(&asset_pattern.asset_name)) - }) + outputs.iter().any(|o| { + o.assets.iter().any(|ma| { + if !asset_pattern.policy_id.is_empty() && asset_pattern.policy_id.ne(&ma.policy_id) { + return false; + } + if asset_pattern.asset_name.is_empty() { + return true; + } + ma.assets + .iter() + .any(|ma| asset_pattern.asset_name.eq(&ma.name)) }) + }) } fn matches_output( @@ -151,6 +154,7 @@ fn block_to_txs( mapper: &interop::Mapper, request: &u5c::watch::WatchTxRequest, ) -> Vec { + let bytes = block; let block = MultiEraBlock::decode(block).unwrap(); let txs = block.txs(); @@ -164,8 +168,12 @@ fn block_to_txs( }) .map(|x| u5c::watch::AnyChainTx { chain: Some(u5c::watch::any_chain_tx::Chain::Cardano(x)), - // TODO(p): should it be none? - block: None, + block: Some(u5c::watch::AnyChainBlock { + native_bytes: bytes.to_vec().into(), + chain: Some(u5c::watch::any_chain_block::Chain::Cardano( + mapper.map_block(&block), + )), + }), }) .collect() } diff --git a/tests/cardano/harness/compare.rs b/tests/cardano/harness/compare.rs index 99881dc8..8f647694 100644 --- a/tests/cardano/harness/compare.rs +++ b/tests/cardano/harness/compare.rs @@ -59,7 +59,7 @@ pub fn compare_csvs_with_ignore( let mut ignored = 0usize; for record in diff_results.as_slice() { - if ignore(&record) { + if ignore(record) { ignored += 1; if count < max_rows || max_rows == 0 { let prefix = match &record {