Skip to content

Commit

Permalink
Clippy + fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
grarco committed Feb 14, 2025
1 parent 367a5bd commit 02bbe55
Show file tree
Hide file tree
Showing 7 changed files with 121 additions and 104 deletions.
4 changes: 2 additions & 2 deletions chain/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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> {
Expand Down
2 changes: 1 addition & 1 deletion shared/src/block.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
7 changes: 1 addition & 6 deletions shared/src/block_result.rs
Original file line number Diff line number Diff line change
Expand Up @@ -218,12 +218,7 @@ impl TxAttributesType {
if let Ok(data) =
serde_json::from_str::<IndexedMaspData>(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),
Expand Down
1 change: 0 additions & 1 deletion shared/src/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down
41 changes: 18 additions & 23 deletions shared/src/transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -469,18 +469,17 @@ 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,
&MaspTxRef::MaspSection(
shielded_section_hash,
),
)
})
.flatten(),
},
),
TransactionKind::IbcShieldingTransfer(
(_, _),
) => extract_masp_transaction(
Expand All @@ -492,18 +491,17 @@ 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,
&MaspTxRef::MaspSection(
shielded_section_hash,
),
)
})
.flatten(),
},
),
_ => None,
}
}
Expand Down Expand Up @@ -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::<Transfer>(&section)
{
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::<Transfer>(&section) {
Ok(namada_ibc::IbcMessage::Envelope(msg_envelope)) => {
namada_sdk::ibc::extract_masp_tx_from_envelope(
&msg_envelope,
)
}
})
.flatten()
_ => None,
}
})
}
_ => None,
}
Expand Down
169 changes: 99 additions & 70 deletions shared/src/utils.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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()));
}

Expand Down Expand Up @@ -109,81 +109,108 @@ pub fn transfer_to_ibc_tx_kind(
serde_json::from_slice::<FtPacketData>(
&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");
Expand All @@ -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 {
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
1 change: 0 additions & 1 deletion transactions/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ async fn main() -> Result<(), MainError> {

async fn crawling_fn(
block_height: u32,
//FIXME: arc without mutexes?
client: Arc<HttpClient>,
conn: Arc<Object>,
checksums: Checksums,
Expand Down

0 comments on commit 02bbe55

Please sign in to comment.