From 02bbe553de47176f87724d021005889619c12eb7 Mon Sep 17 00:00:00 2001 From: Marco Granelli Date: Fri, 14 Feb 2025 15:06:19 +0100 Subject: [PATCH] Clippy + fmt --- chain/src/main.rs | 4 +- shared/src/block.rs | 2 +- shared/src/block_result.rs | 7 +- shared/src/token.rs | 1 - shared/src/transaction.rs | 41 ++++----- shared/src/utils.rs | 169 ++++++++++++++++++++++--------------- transactions/src/main.rs | 1 - 7 files changed, 121 insertions(+), 104 deletions(-) diff --git a/chain/src/main.rs b/chain/src/main.rs index b8e473c3..88435925 100644 --- a/chain/src/main.rs +++ b/chain/src/main.rs @@ -29,10 +29,10 @@ use shared::id::Id; use shared::token::Token; use shared::utils::BalanceChange; use shared::validator::ValidatorSet; -use tendermint_rpc::endpoint::block::Response as TendermintBlockResponse; use tendermint_rpc::HttpClient; -use tokio_retry::strategy::{jitter, ExponentialBackoff}; +use tendermint_rpc::endpoint::block::Response as TendermintBlockResponse; use tokio_retry::Retry; +use tokio_retry::strategy::{ExponentialBackoff, jitter}; #[tokio::main] async fn main() -> Result<(), MainError> { diff --git a/shared/src/block.rs b/shared/src/block.rs index ae21e28f..541170f8 100644 --- a/shared/src/block.rs +++ b/shared/src/block.rs @@ -1,9 +1,9 @@ use std::collections::{BTreeMap, HashSet}; use std::str::FromStr; +use namada_ibc::IbcMessage; use namada_ibc::core::channel::types::msgs::{MsgRecvPacket, PacketMsg}; use namada_ibc::core::handler::types::msgs::MsgEnvelope; -use namada_ibc::IbcMessage; use namada_sdk::address::Address; use namada_sdk::borsh::BorshDeserialize; use namada_sdk::token::Transfer; diff --git a/shared/src/block_result.rs b/shared/src/block_result.rs index 68aaa8d0..f477334a 100644 --- a/shared/src/block_result.rs +++ b/shared/src/block_result.rs @@ -218,12 +218,7 @@ impl TxAttributesType { if let Ok(data) = serde_json::from_str::(data) { - let refs = data - .masp_refs - .0 - .iter() - .map(|masp_ref| masp_ref.clone()) - .collect(); + let refs = data.masp_refs.0.to_vec(); HashMap::from_iter([( data.tx_index.0 as u64, MaspTxRefs(refs), diff --git a/shared/src/token.rs b/shared/src/token.rs index 9771a842..87f9da16 100644 --- a/shared/src/token.rs +++ b/shared/src/token.rs @@ -11,7 +11,6 @@ pub struct IbcToken { } #[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize)] -// FIXME: review all the usage of this, I believe it's wrong, we use it even when we are not sure that we are dealing with the native token pub enum Token { Ibc(IbcToken), Native(Id), diff --git a/shared/src/transaction.rs b/shared/src/transaction.rs index 505e086e..68f108bc 100644 --- a/shared/src/transaction.rs +++ b/shared/src/transaction.rs @@ -12,7 +12,7 @@ use namada_tx::data::pos::{ BecomeValidator, Bond, ClaimRewards, CommissionChange, MetaDataChange, Redelegation, Unbond, Withdraw, }; -use namada_tx::data::{compute_inner_tx_hash, TxType}; +use namada_tx::data::{TxType, compute_inner_tx_hash}; use namada_tx::either::Either; use namada_tx::{Section, Tx}; use serde::Serialize; @@ -469,9 +469,8 @@ impl Transaction { ) | TransactionKind::MixedTransfer(Some( data, - )) => data - .shielded_section_hash - .map(|shielded_section_hash| { + )) => data.shielded_section_hash.and_then( + |shielded_section_hash| { extract_masp_transaction( &transaction, note, @@ -479,8 +478,8 @@ impl Transaction { shielded_section_hash, ), ) - }) - .flatten(), + }, + ), TransactionKind::IbcShieldingTransfer( (_, _), ) => extract_masp_transaction( @@ -492,9 +491,8 @@ impl Transaction { ), TransactionKind::IbcUnshieldingTransfer( (_, data), - ) => data - .shielded_section_hash - .map(|shielded_section_hash| { + ) => data.shielded_section_hash.and_then( + |shielded_section_hash| { extract_masp_transaction( &transaction, note, @@ -502,8 +500,8 @@ impl Transaction { shielded_section_hash, ), ) - }) - .flatten(), + }, + ), _ => None, } } @@ -578,19 +576,16 @@ fn extract_masp_transaction( (MaspTxRef::IbcData(event_hash), MaspTxRef::IbcData(tx_hash)) if event_hash == tx_hash => { - tx.get_data_section(event_hash) - .map(|section| { - match namada_sdk::ibc::decode_message::(§ion) - { - Ok(namada_ibc::IbcMessage::Envelope(msg_envelope)) => { - namada_sdk::ibc::extract_masp_tx_from_envelope( - &msg_envelope, - ) - } - _ => None, + tx.get_data_section(event_hash).and_then(|section| { + match namada_sdk::ibc::decode_message::(§ion) { + Ok(namada_ibc::IbcMessage::Envelope(msg_envelope)) => { + namada_sdk::ibc::extract_masp_tx_from_envelope( + &msg_envelope, + ) } - }) - .flatten() + _ => None, + } + }) } _ => None, } diff --git a/shared/src/utils.rs b/shared/src/utils.rs index ff05c2d0..f2d9be98 100644 --- a/shared/src/utils.rs +++ b/shared/src/utils.rs @@ -1,7 +1,6 @@ use namada_ibc::apps::nft_transfer::types::PORT_ID_STR as NFT_PORT_ID_STR; -use namada_ibc::apps::transfer::types::{ - packet::PacketData as FtPacketData, PORT_ID_STR as FT_PORT_ID_STR, -}; +use namada_ibc::apps::transfer::types::PORT_ID_STR as FT_PORT_ID_STR; +use namada_ibc::apps::transfer::types::packet::PacketData as FtPacketData; use namada_ibc::core::handler::types::msgs::MsgEnvelope; use namada_sdk::address::Address; use namada_sdk::token::Transfer; @@ -45,7 +44,8 @@ pub fn transfer_to_tx_kind(data: Transfer) -> TransactionKind { && data.sources.is_empty() && data.targets.is_empty() { - // For fully shielded transaction we don't explicitly write the masp address in the sources nor targets + // For fully shielded transaction we don't explicitly write the masp + // address in the sources nor targets return TransactionKind::ShieldedTransfer(Some(data.into())); } @@ -109,81 +109,108 @@ pub fn transfer_to_ibc_tx_kind( serde_json::from_slice::( &msg.packet.data, ) - .expect("Could not deserialize IBC fungible token packet"); + .expect( + "Could not deserialize IBC fungible token \ + packet", + ); - let (token, token_id, denominated_amount) = if packet_data - .token - .denom - .to_string() - .contains(&native_token.to_string()) - { - ( + let (token, token_id, denominated_amount) = + if packet_data + .token + .denom + .to_string() + .contains(&native_token.to_string()) + { + ( native_token.clone(), crate::token::Token::Native(native_token.into()), namada_sdk::token::DenominatedAmount::native( namada_sdk::token::Amount::from_str( - &packet_data.token.amount.to_string(), + packet_data.token.amount.to_string(), 0, ) .expect("Failed conversion of IBC amount to Namada one"), ), ) - } else { - let ibc_trace = format!( - "{}/{}/{}", - msg.packet.port_id_on_b, - msg.packet.chan_id_on_b, - packet_data.token.denom - ); - let token_address = - namada_ibc::trace::convert_to_address( - ibc_trace.clone(), - ) - .expect( - "Failed to convert IBC trace to address", + } else { + let ibc_trace = format!( + "{}/{}/{}", + msg.packet.port_id_on_b, + msg.packet.chan_id_on_b, + packet_data.token.denom ); - ( - token_address.clone(), - crate::token::Token::Ibc(crate::token::IbcToken { address: token_address.into(), trace: Id::IbcTrace(ibc_trace) }), - namada_sdk::token::DenominatedAmount::new( - namada_sdk::token::Amount::from_str( - &packet_data.token.amount.to_string(), - 0, + let token_address = + namada_ibc::trace::convert_to_address( + ibc_trace.clone(), ) - .expect("Failed conversion of IBC amount to Namada one"), - 0.into(), - ), - ) - }; + .expect( + "Failed to convert IBC trace to \ + address", + ); + ( + token_address.clone(), + crate::token::Token::Ibc( + crate::token::IbcToken { + address: token_address.into(), + trace: Id::IbcTrace(ibc_trace), + }, + ), + namada_sdk::token::DenominatedAmount::new( + namada_sdk::token::Amount::from_str( + packet_data + .token + .amount + .to_string(), + 0, + ) + .expect( + "Failed conversion of IBC amount \ + to Namada one", + ), + 0.into(), + ), + ) + }; - (TransferData { - sources: crate::ser::AccountsMap( - [( - namada_sdk::token::Account { - owner: namada_sdk::address::IBC, - token: token.clone(), - }, - denominated_amount, - )] - .into(), - ), - targets: crate::ser::AccountsMap( - [( - namada_sdk::token::Account { - owner: packet_data.receiver.try_into().expect("Failed to convert IBC signer to address"), - token, - }, - denominated_amount, - )] - .into(), - ), - shielded_section_hash: None, - }, - token_id) + ( + TransferData { + sources: crate::ser::AccountsMap( + [( + namada_sdk::token::Account { + owner: namada_sdk::address::IBC, + token: token.clone(), + }, + denominated_amount, + )] + .into(), + ), + targets: crate::ser::AccountsMap( + [( + namada_sdk::token::Account { + owner: packet_data + .receiver + .try_into() + .expect( + "Failed to convert IBC \ + signer to address", + ), + token, + }, + denominated_amount, + )] + .into(), + ), + shielded_section_hash: None, + }, + token_id, + ) } NFT_PORT_ID_STR => { // TODO: add support for indexing nfts - todo!("IBC NFTs are not yet supported for indexing purposes") + todo!( + "IBC NFTs are not yet supported for indexing \ + purposes" + ) } _ => { tracing::warn!("Found unsupported IBC packet data"); @@ -195,7 +222,7 @@ pub fn transfer_to_ibc_tx_kind( let is_shielding = namada_sdk::ibc::extract_masp_tx_from_envelope( - &msg_envelope, + msg_envelope, ) .is_some(); if is_shielding { @@ -224,10 +251,10 @@ pub fn transfer_to_ibc_tx_kind( { ( native_token.clone(), - crate::token::Token::Native(native_token.into()), + crate::token::Token::Native(native_token.into()), namada_sdk::token::DenominatedAmount::native( namada_sdk::token::Amount::from_str( - &transfer + transfer .message .packet_data .token @@ -247,16 +274,18 @@ pub fn transfer_to_ibc_tx_kind( transfer.message.chan_id_on_a, transfer.message.packet_data.token.denom ); - let token_address = + let token_address = namada_ibc::trace::convert_to_address(ibc_trace.clone()) .expect("Failed to convert IBC trace to address"); ( token_address.clone(), - - crate::token::Token::Ibc(crate::token::IbcToken { address: token_address.into(), trace: Id::IbcTrace(ibc_trace) }), + crate::token::Token::Ibc(crate::token::IbcToken { + address: token_address.into(), + trace: Id::IbcTrace(ibc_trace), + }), namada_sdk::token::DenominatedAmount::new( namada_sdk::token::Amount::from_str( - &transfer + transfer .message .packet_data .token diff --git a/transactions/src/main.rs b/transactions/src/main.rs index b9589138..37e27ffb 100644 --- a/transactions/src/main.rs +++ b/transactions/src/main.rs @@ -78,7 +78,6 @@ async fn main() -> Result<(), MainError> { async fn crawling_fn( block_height: u32, - //FIXME: arc without mutexes? client: Arc, conn: Arc, checksums: Checksums,