Skip to content

Commit

Permalink
avoid code nesting in clear_nft_db, remove map_err for `NumConver…
Browse files Browse the repository at this point in the history
…sError`
  • Loading branch information
laruh committed Feb 5, 2024
1 parent 32fc16e commit 21f67b4
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 27 deletions.
27 changes: 10 additions & 17 deletions mm2src/coins/eth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -902,12 +902,10 @@ pub async fn withdraw_erc1155(ctx: MmArc, withdraw_type: WithdrawErc1155) -> Wit
let (eth_value, data, call_addr, fee_coin) = match eth_coin.coin_type {
EthCoinType::Eth => {
let function = ERC1155_CONTRACT.function("safeTransferFrom")?;
let token_id_u256 = U256::from_dec_str(token_id_str)
.map_err(|e| format!("{:?}", e))
.map_to_mm(NumConversError::new)?;
let amount_u256 = U256::from_dec_str(&amount_dec.to_string())
.map_err(|e| format!("{:?}", e))
.map_to_mm(NumConversError::new)?;
let token_id_u256 =
U256::from_dec_str(token_id_str).map_to_mm(|e| NumConversError::new(format!("{:?}", e)))?;
let amount_u256 =
U256::from_dec_str(&amount_dec.to_string()).map_to_mm(|e| NumConversError::new(format!("{:?}", e)))?;
let data = function.encode_input(&[
Token::Address(eth_coin.my_address),
Token::Address(to_addr),
Expand Down Expand Up @@ -993,8 +991,7 @@ pub async fn withdraw_erc721(ctx: MmArc, withdraw_type: WithdrawErc721) -> Withd
EthCoinType::Eth => {
let function = ERC721_CONTRACT.function("safeTransferFrom")?;
let token_id_u256 = U256::from_dec_str(&withdraw_type.token_id.to_string())
.map_err(|e| format!("{:?}", e))
.map_to_mm(NumConversError::new)?;
.map_to_mm(|e| NumConversError::new(format!("{:?}", e)))?;
let data = function.encode_input(&[
Token::Address(my_address),
Token::Address(to_addr),
Expand Down Expand Up @@ -4022,9 +4019,8 @@ impl EthCoin {
let wallet_amount_uint = match self.coin_type {
EthCoinType::Eth => {
let function = ERC1155_CONTRACT.function("balanceOf")?;
let token_id_u256 = U256::from_dec_str(token_id)
.map_err(|e| format!("{:?}", e))
.map_to_mm(NumConversError::new)?;
let token_id_u256 =
U256::from_dec_str(token_id).map_to_mm(|e| NumConversError::new(format!("{:?}", e)))?;
let data = function.encode_input(&[Token::Address(self.my_address), Token::Uint(token_id_u256)])?;
let result = self.call_request(token_addr, None, Some(data.into())).await?;
let decoded = function.decode_output(&result.0)?;
Expand All @@ -4050,9 +4046,8 @@ impl EthCoin {
let owner_address = match self.coin_type {
EthCoinType::Eth => {
let function = ERC721_CONTRACT.function("ownerOf")?;
let token_id_u256 = U256::from_dec_str(token_id)
.map_err(|e| format!("{:?}", e))
.map_to_mm(NumConversError::new)?;
let token_id_u256 =
U256::from_dec_str(token_id).map_to_mm(|e| NumConversError::new(format!("{:?}", e)))?;
let data = function.encode_input(&[Token::Uint(token_id_u256)])?;
let result = self.call_request(token_addr, None, Some(data.into())).await?;
let decoded = function.decode_output(&result.0)?;
Expand Down Expand Up @@ -5355,9 +5350,7 @@ pub fn wei_from_big_decimal(amount: &BigDecimal, decimals: u8) -> NumConversResu
} else {
amount.insert_str(amount.len(), &"0".repeat(decimals));
}
U256::from_dec_str(&amount)
.map_err(|e| format!("{:?}", e))
.map_to_mm(NumConversError::new)
U256::from_dec_str(&amount).map_to_mm(|e| NumConversError::new(format!("{:?}", e)))
}

impl Transaction for SignedEthTx {
Expand Down
27 changes: 17 additions & 10 deletions mm2src/coins/nft.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use crate::nft::nft_structs::{build_nft_with_empty_meta, BuildNftFields, ClearNf
NftTransferCommon, PhishingDomainReq, PhishingDomainRes, RefreshMetadataReq,
SpamContractReq, SpamContractRes, TransferMeta, TransferStatus, UriMeta};
use crate::nft::storage::{NftListStorageOps, NftTransferHistoryStorageOps};
use common::{log::error, parse_rfc3339_to_timestamp};
use common::parse_rfc3339_to_timestamp;
use crypto::StandardHDCoinAddress;
use ethereum_types::{Address, H256};
use futures::compat::Future01CompatExt;
Expand Down Expand Up @@ -1380,20 +1380,27 @@ pub async fn clear_nft_db(ctx: MmArc, req: ClearNftDbReq) -> MmResult<(), ClearN
let storage = nft_ctx.lock_db().await?;
storage.clear_all_nft_data().await?;
storage.clear_all_history_data().await?;
} else if !req.chains.is_empty() {
let nft_ctx = NftCtx::from_ctx(&ctx).map_to_mm(ClearNftDbError::Internal)?;
let storage = nft_ctx.lock_db().await?;
for chain in req.chains.iter() {
if let Err(e) = clear_data_for_chain(&storage, chain).await {
error!("Failed to clear data for chain {}: {}", chain, e);
}
}
} else {
return Ok(());
}

if req.chains.is_empty() {
return MmError::err(ClearNftDbError::InvalidRequest(
"Nothing to clear was specified".to_string(),
));
}

let nft_ctx = NftCtx::from_ctx(&ctx).map_to_mm(ClearNftDbError::Internal)?;
let storage = nft_ctx.lock_db().await?;
let mut errors = Vec::new();
for chain in req.chains.iter() {
if let Err(e) = clear_data_for_chain(&storage, chain).await {
errors.push(e);
}
}
if !errors.is_empty() {
return MmError::err(ClearNftDbError::DbError(format!("{:?}", errors)));
}

Ok(())
}

Expand Down

0 comments on commit 21f67b4

Please sign in to comment.