Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make clippy happy #81

Merged
merged 3 commits into from
Sep 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/entities/ether.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ impl Currency for Ether {
impl Ether {
/// Creates a new instance of [`Ether`] with the specified chain ID.
#[inline]
#[must_use]
pub fn new(chain_id: u64) -> Self {
Self {
chain_id,
Expand All @@ -44,6 +45,7 @@ impl Ether {

/// Retrieves or creates an [`Ether`] instance for the specified chain ID.
#[inline]
#[must_use]
pub fn on_chain(chain_id: u64) -> Self {
Self::new(chain_id)
}
Expand Down
2 changes: 1 addition & 1 deletion src/entities/fractions/currency_amount.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ impl<T: Currency> CurrencyAmount<T> {
denominator,
CurrencyMeta {
currency,
decimal_scale: BigUint::from(10u64).pow(exponent as u32),
decimal_scale: BigUint::from(10_u64).pow(exponent as u32),
},
))
}
Expand Down
4 changes: 1 addition & 3 deletions src/entities/fractions/fraction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -167,9 +167,7 @@ impl<M: Clone> FractionBase<M> for FractionLike<M> {
fn new(numerator: impl Into<BigInt>, denominator: impl Into<BigInt>, meta: M) -> Self {
let denominator = denominator.into();
// Ensure the denominator is not zero
if denominator.is_zero() {
panic!("denominator is zero");
}
assert!(!denominator.is_zero(), "denominator is zero");
Self {
numerator: numerator.into(),
denominator,
Expand Down
1 change: 1 addition & 0 deletions src/entities/fractions/percent.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ impl Percent {
/// Converts the [`Percent`] to a string with a fixed number of decimal places and rounding
/// strategy
#[inline]
#[must_use]
pub fn to_fixed(&self, decimal_places: u8, rounding: Rounding) -> String {
// Convert the Percent to a simple Fraction, multiply by 100, and then call to_fixed on the
// result
Expand Down
2 changes: 2 additions & 0 deletions src/entities/native_currency.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@ use crate::prelude::*;

/// Represents the native currency of the chain on which it resides
pub trait NativeCurrency: Currency {
#[inline]
fn is_native(&self) -> bool {
true
}

#[inline]
fn is_token(&self) -> bool {
false
}
Expand Down
5 changes: 2 additions & 3 deletions src/entities/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ impl Token {
///
/// Panics if `chain_id` is 0.
#[inline]
#[must_use]
pub const fn new(
chain_id: u64,
address: Address,
Expand All @@ -69,9 +70,7 @@ impl Token {
buy_fee_bps: Option<BigUint>,
sell_fee_bps: Option<BigUint>,
) -> Self {
if chain_id == 0 {
panic!("chain id can't be zero");
}
assert!(chain_id != 0, "chain id can't be zero");
Self {
chain_id,
decimals,
Expand Down
4 changes: 4 additions & 0 deletions src/entities/weth9.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ pub struct WETH9 {
/// Default implementation for [`WETH9`], creating an instance with predefined WETH tokens on
/// various chains.
impl Default for WETH9 {
#[inline]
fn default() -> Self {
Self::new()
}
Expand All @@ -28,6 +29,7 @@ impl WETH9 {
///
/// A new `WETH9` instance with predefined WETH tokens.
#[inline]
#[must_use]
pub fn new() -> Self {
let tokens = FxHashMap::from_iter(vec![
(1, Self::on_chain(1).unwrap()),
Expand Down Expand Up @@ -55,6 +57,7 @@ impl WETH9 {
///
/// Returns: `Some(Token)` if the token exists, `None` otherwise.
#[inline]
#[must_use]
pub fn on_chain(chain_id: u64) -> Option<Token> {
match chain_id {
1 => Some(token!(
Expand Down Expand Up @@ -160,6 +163,7 @@ impl WETH9 {
///
/// Returns: `Some(Token)` if the token exists, `None` otherwise.
#[inline]
#[must_use]
pub fn get(&self, chain_id: u64) -> Option<&Token> {
self.tokens.get(&chain_id)
}
Expand Down
7 changes: 7 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,25 @@
//!
//! The Uniswap SDK Core in Rust provides essential functionality for interacting with the Uniswap
//! decentralized exchange.

#![cfg_attr(not(any(feature = "std", test)), no_std)]
#![warn(
missing_copy_implementations,
missing_debug_implementations,
unreachable_pub,
clippy::missing_const_for_fn,
clippy::missing_inline_in_public_items,
clippy::needless_pass_by_value,
clippy::redundant_clone,
clippy::manual_assert,
clippy::must_use_candidate,
clippy::unseparated_literal_suffix,
rustdoc::all
)]
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
#![deny(unused_must_use, rust_2018_idioms)]
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]

extern crate alloc;

/// Contains functionality related to All Contracts deployed and supported by the Uniswap SDK.
Expand Down
12 changes: 6 additions & 6 deletions src/utils/compute_price_impact.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use crate::prelude::*;
/// returns: Percent
#[inline]
pub fn compute_price_impact<TBase: Currency, TQuote: Currency>(
mid_price: Price<TBase, TQuote>,
mid_price: &Price<TBase, TQuote>,
input_amount: &CurrencyAmount<TBase>,
output_amount: &CurrencyAmount<TQuote>,
) -> Result<Percent, Error> {
Expand Down Expand Up @@ -42,7 +42,7 @@ mod tests {
//is correct for zero
assert!(
compute_price_impact(
Price::new(Ether::on_chain(1), token.clone(), 10, 100),
&Price::new(Ether::on_chain(1), token.clone(), 10, 100),
&CurrencyAmount::from_raw_amount(Ether::on_chain(1), 10).unwrap(),
&CurrencyAmount::from_raw_amount(token.clone(), 100).unwrap()
)
Expand All @@ -53,7 +53,7 @@ mod tests {
//is correct for half output
assert!(
compute_price_impact(
Price::new(token.clone(), token_1.clone(), 10, 100),
&Price::new(token.clone(), token_1.clone(), 10, 100),
&CurrencyAmount::from_raw_amount(token.clone(), 10).unwrap(),
&CurrencyAmount::from_raw_amount(token_1.clone(), 50).unwrap()
)
Expand All @@ -64,9 +64,9 @@ mod tests {
//is negative for more output
assert_eq!(
compute_price_impact(
Price::new(token.clone(), token_1.clone(), 10, 100),
&CurrencyAmount::from_raw_amount(token.clone(), 10).unwrap(),
&CurrencyAmount::from_raw_amount(token_1.clone(), 200).unwrap()
&Price::new(token.clone(), token_1.clone(), 10, 100),
&CurrencyAmount::from_raw_amount(token, 10).unwrap(),
&CurrencyAmount::from_raw_amount(token_1, 200).unwrap()
)
.unwrap(),
Percent::new(-10000, 10000)
Expand Down
1 change: 1 addition & 0 deletions src/utils/sorted_insert.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ use crate::prelude::*;

/// Given an array of items sorted by `comparator`, insert an item into its sort index and constrain
/// the size to `maxSize` by removing the last item
#[inline]
pub fn sorted_insert<T: Clone>(
items: &mut Vec<T>,
add: T,
Expand Down
1 change: 1 addition & 0 deletions src/utils/sqrt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ use num_traits::Signed;
/// * `value`: the value for which to compute the square root, rounded down
///
/// returns: BigInt
#[inline]
pub fn sqrt(value: &BigInt) -> Result<BigInt, Error> {
if value.is_negative() {
Err(Error::Invalid)
Expand Down
2 changes: 2 additions & 0 deletions src/utils/validate_and_parse_address.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ use regex::Regex;
/// with only hexadecimal characters after `0x`, returns `Ok(ethereum_address.to_string())`.
/// * Otherwise, returns an error message in the form of `Err(format!("{} is not a valid Ethereum
/// address.", ethereum_address))`.
#[inline]
pub fn check_valid_ethereum_address(ethereum_address: &str) -> Result<&str, String> {
let valid_address_regex = Regex::new(r"^0x[0-9a-fA-F]{40}$").unwrap();
if valid_address_regex.is_match(ethereum_address) {
Expand All @@ -37,6 +38,7 @@ pub fn check_valid_ethereum_address(ethereum_address: &str) -> Result<&str, Stri
/// with only hexadecimal characters after `0x`, returns the checksummed address.
/// * Otherwise, returns an error message in the form of `Err(format!("{} is not a valid Ethereum
/// address.", ethereum_address))`.
#[inline]
pub fn validate_and_parse_address(ethereum_address: &str) -> Result<String, String> {
let checksummed_address = eth_checksum::checksum(ethereum_address);
check_valid_ethereum_address(&checksummed_address)?;
Expand Down