feat: add pedantic clippy lints

This commit is contained in:
Daniil Polyakov
2026-03-17 21:25:30 +03:00
parent 756f2f4135
commit efe8393ba0
145 changed files with 1549 additions and 1187 deletions
+7 -1
View File
@@ -89,7 +89,7 @@ pub struct PoolDefinition {
pub fees: u128,
/// A pool becomes inactive (active = false)
/// once all of its liquidity has been removed (e.g., reserves are emptied and
/// liquidity_pool_supply = 0)
/// `liquidity_pool_supply` = 0)
pub active: bool,
}
@@ -113,6 +113,7 @@ impl From<&PoolDefinition> for Data {
}
}
#[must_use]
pub fn compute_pool_pda(
amm_program_id: ProgramId,
definition_token_a_id: AccountId,
@@ -124,6 +125,7 @@ pub fn compute_pool_pda(
))
}
#[must_use]
pub fn compute_pool_pda_seed(
definition_token_a_id: AccountId,
definition_token_b_id: AccountId,
@@ -151,6 +153,7 @@ pub fn compute_pool_pda_seed(
)
}
#[must_use]
pub fn compute_vault_pda(
amm_program_id: ProgramId,
pool_id: AccountId,
@@ -162,6 +165,7 @@ pub fn compute_vault_pda(
))
}
#[must_use]
pub fn compute_vault_pda_seed(pool_id: AccountId, definition_token_id: AccountId) -> PdaSeed {
use risc0_zkvm::sha::{Impl, Sha256};
@@ -177,10 +181,12 @@ pub fn compute_vault_pda_seed(pool_id: AccountId, definition_token_id: AccountId
)
}
#[must_use]
pub fn compute_liquidity_token_pda(amm_program_id: ProgramId, pool_id: AccountId) -> AccountId {
AccountId::from((&amm_program_id, &compute_liquidity_token_pda_seed(pool_id)))
}
#[must_use]
pub fn compute_liquidity_token_pda_seed(pool_id: AccountId) -> PdaSeed {
use risc0_zkvm::sha::{Impl, Sha256};
+8 -7
View File
@@ -7,6 +7,7 @@ use nssa_core::{
};
#[expect(clippy::too_many_arguments, reason = "TODO: Fix later")]
#[must_use]
pub fn add_liquidity(
pool: AccountWithMetadata,
vault_a: AccountWithMetadata,
@@ -123,7 +124,7 @@ pub fn add_liquidity(
);
// 5. Update pool account
let mut pool_post = pool.account.clone();
let mut pool_post = pool.account;
let pool_post_definition = PoolDefinition {
liquidity_pool_supply: pool_def_data.liquidity_pool_supply + delta_lp,
reserve_a: pool_def_data.reserve_a + actual_amount_a,
@@ -166,12 +167,12 @@ pub fn add_liquidity(
let post_states = vec![
AccountPostState::new(pool_post),
AccountPostState::new(vault_a.account.clone()),
AccountPostState::new(vault_b.account.clone()),
AccountPostState::new(pool_definition_lp.account.clone()),
AccountPostState::new(user_holding_a.account.clone()),
AccountPostState::new(user_holding_b.account.clone()),
AccountPostState::new(user_holding_lp.account.clone()),
AccountPostState::new(vault_a.account),
AccountPostState::new(vault_b.account),
AccountPostState::new(pool_definition_lp.account),
AccountPostState::new(user_holding_a.account),
AccountPostState::new(user_holding_b.account),
AccountPostState::new(user_holding_lp.account),
];
(post_states, chained_calls)
+22 -25
View File
@@ -10,6 +10,7 @@ use nssa_core::{
};
#[expect(clippy::too_many_arguments, reason = "TODO: Fix later")]
#[must_use]
pub fn new_definition(
pool: AccountWithMetadata,
vault_a: AccountWithMetadata,
@@ -79,8 +80,20 @@ pub fn new_definition(
// LP Token minting calculation
let initial_lp = (token_a_amount.get() * token_b_amount.get()).isqrt();
// Chain call for liquidity token (TokenLP definition -> User LP Holding)
let instruction = if pool.account == Account::default() {
token_core::Instruction::NewFungibleDefinition {
name: String::from("LP Token"),
total_supply: initial_lp,
}
} else {
token_core::Instruction::Mint {
amount_to_mint: initial_lp,
}
};
// Update pool account
let mut pool_post = pool.account.clone();
let mut pool_post = pool.account;
let pool_post_definition = PoolDefinition {
definition_token_a_id,
definition_token_b_id,
@@ -95,11 +108,7 @@ pub fn new_definition(
};
pool_post.data = Data::from(&pool_post_definition);
let pool_post: AccountPostState = if pool.account == Account::default() {
AccountPostState::new_claimed(pool_post.clone())
} else {
AccountPostState::new(pool_post.clone())
};
let pool_post = AccountPostState::new_claimed_if_default(pool_post);
let token_program_id = user_holding_a.account.program_owner;
@@ -120,18 +129,6 @@ pub fn new_definition(
},
);
// Chain call for liquidity token (TokenLP definition -> User LP Holding)
let instruction = if pool.account == Account::default() {
token_core::Instruction::NewFungibleDefinition {
name: String::from("LP Token"),
total_supply: initial_lp,
}
} else {
token_core::Instruction::Mint {
amount_to_mint: initial_lp,
}
};
let mut pool_lp_auth = pool_definition_lp.clone();
pool_lp_auth.is_authorized = true;
@@ -145,13 +142,13 @@ pub fn new_definition(
let chained_calls = vec![call_token_lp, call_token_b, call_token_a];
let post_states = vec![
pool_post.clone(),
AccountPostState::new(vault_a.account.clone()),
AccountPostState::new(vault_b.account.clone()),
AccountPostState::new(pool_definition_lp.account.clone()),
AccountPostState::new(user_holding_a.account.clone()),
AccountPostState::new(user_holding_b.account.clone()),
AccountPostState::new(user_holding_lp.account.clone()),
pool_post,
AccountPostState::new(vault_a.account),
AccountPostState::new(vault_b.account),
AccountPostState::new(pool_definition_lp.account),
AccountPostState::new(user_holding_a.account),
AccountPostState::new(user_holding_b.account),
AccountPostState::new(user_holding_lp.account),
];
(post_states.clone(), chained_calls)
+9 -8
View File
@@ -7,6 +7,7 @@ use nssa_core::{
};
#[expect(clippy::too_many_arguments, reason = "TODO: Fix later")]
#[must_use]
pub fn remove_liquidity(
pool: AccountWithMetadata,
vault_a: AccountWithMetadata,
@@ -101,7 +102,7 @@ pub fn remove_liquidity(
let active: bool = pool_def_data.liquidity_pool_supply - delta_lp != 0;
// 5. Update pool account
let mut pool_post = pool.account.clone();
let mut pool_post = pool.account;
let pool_post_definition = PoolDefinition {
liquidity_pool_supply: pool_def_data.liquidity_pool_supply - delta_lp,
reserve_a: pool_def_data.reserve_a - withdraw_amount_a,
@@ -153,13 +154,13 @@ pub fn remove_liquidity(
let chained_calls = vec![call_token_lp, call_token_b, call_token_a];
let post_states = vec![
AccountPostState::new(pool_post.clone()),
AccountPostState::new(vault_a.account.clone()),
AccountPostState::new(vault_b.account.clone()),
AccountPostState::new(pool_definition_lp.account.clone()),
AccountPostState::new(user_holding_a.account.clone()),
AccountPostState::new(user_holding_b.account.clone()),
AccountPostState::new(user_holding_lp.account.clone()),
AccountPostState::new(pool_post),
AccountPostState::new(vault_a.account),
AccountPostState::new(vault_b.account),
AccountPostState::new(pool_definition_lp.account),
AccountPostState::new(user_holding_a.account),
AccountPostState::new(user_holding_b.account),
AccountPostState::new(user_holding_lp.account),
];
(post_states, chained_calls)
+8 -7
View File
@@ -5,6 +5,7 @@ use nssa_core::{
};
#[expect(clippy::too_many_arguments, reason = "TODO: Fix later")]
#[must_use]
pub fn swap(
pool: AccountWithMetadata,
vault_a: AccountWithMetadata,
@@ -95,7 +96,7 @@ pub fn swap(
};
// Update pool account
let mut pool_post = pool.account.clone();
let mut pool_post = pool.account;
let pool_post_definition = PoolDefinition {
reserve_a: pool_def_data.reserve_a + deposit_a - withdraw_a,
reserve_b: pool_def_data.reserve_b + deposit_b - withdraw_b,
@@ -105,11 +106,11 @@ pub fn swap(
pool_post.data = Data::from(&pool_post_definition);
let post_states = vec![
AccountPostState::new(pool_post.clone()),
AccountPostState::new(vault_a.account.clone()),
AccountPostState::new(vault_b.account.clone()),
AccountPostState::new(user_holding_a.account.clone()),
AccountPostState::new(user_holding_b.account.clone()),
AccountPostState::new(pool_post),
AccountPostState::new(vault_a.account),
AccountPostState::new(vault_b.account),
AccountPostState::new(user_holding_a.account),
AccountPostState::new(user_holding_b.account),
];
(post_states, chained_calls)
@@ -151,7 +152,7 @@ fn swap_logic(
},
));
let mut vault_withdraw = vault_withdraw.clone();
let mut vault_withdraw = vault_withdraw;
vault_withdraw.is_authorized = true;
let pda_seed = compute_vault_pda_seed(
+6 -3
View File
@@ -127,6 +127,7 @@ pub enum TokenHolding {
}
impl TokenHolding {
#[must_use]
pub fn zeroized_clone_from(other: &Self) -> Self {
match other {
TokenHolding::Fungible { definition_id, .. } => TokenHolding::Fungible {
@@ -144,6 +145,7 @@ impl TokenHolding {
}
}
#[must_use]
pub fn zeroized_from_definition(
definition_id: AccountId,
definition: &TokenDefinition,
@@ -160,11 +162,12 @@ impl TokenHolding {
}
}
#[must_use]
pub fn definition_id(&self) -> AccountId {
match self {
TokenHolding::Fungible { definition_id, .. } => *definition_id,
TokenHolding::NftMaster { definition_id, .. } => *definition_id,
TokenHolding::NftPrintedCopy { definition_id, .. } => *definition_id,
TokenHolding::Fungible { definition_id, .. }
| TokenHolding::NftMaster { definition_id, .. }
| TokenHolding::NftPrintedCopy { definition_id, .. } => *definition_id,
}
}
}
+1
View File
@@ -4,6 +4,7 @@ use nssa_core::{
};
use token_core::{TokenDefinition, TokenHolding};
#[must_use]
pub fn burn(
definition_account: AccountWithMetadata,
user_holding_account: AccountWithMetadata,
+1
View File
@@ -4,6 +4,7 @@ use nssa_core::{
};
use token_core::{TokenDefinition, TokenHolding};
#[must_use]
pub fn initialize_account(
definition_account: AccountWithMetadata,
account_to_initialize: AccountWithMetadata,
+1
View File
@@ -4,6 +4,7 @@ use nssa_core::{
};
use token_core::{TokenDefinition, TokenHolding};
#[must_use]
pub fn mint(
definition_account: AccountWithMetadata,
user_holding_account: AccountWithMetadata,
+5 -3
View File
@@ -6,6 +6,7 @@ use token_core::{
NewTokenDefinition, NewTokenMetadata, TokenDefinition, TokenHolding, TokenMetadata,
};
#[must_use]
pub fn new_fungible_definition(
definition_target_account: AccountWithMetadata,
holding_target_account: AccountWithMetadata,
@@ -46,6 +47,7 @@ pub fn new_fungible_definition(
]
}
#[must_use]
pub fn new_definition_with_metadata(
definition_target_account: AccountWithMetadata,
holding_target_account: AccountWithMetadata,
@@ -107,13 +109,13 @@ pub fn new_definition_with_metadata(
primary_sale_date: 0u64, // TODO #261: future works to implement this
};
let mut definition_target_account_post = definition_target_account.account.clone();
let mut definition_target_account_post = definition_target_account.account;
definition_target_account_post.data = Data::from(&token_definition);
let mut holding_target_account_post = holding_target_account.account.clone();
let mut holding_target_account_post = holding_target_account.account;
holding_target_account_post.data = Data::from(&token_holding);
let mut metadata_target_account_post = metadata_target_account.account.clone();
let mut metadata_target_account_post = metadata_target_account.account;
metadata_target_account_post.data = Data::from(&token_metadata);
vec![
+1
View File
@@ -4,6 +4,7 @@ use nssa_core::{
};
use token_core::TokenHolding;
#[must_use]
pub fn print_nft(
master_account: AccountWithMetadata,
printed_account: AccountWithMetadata,
+2 -1
View File
@@ -4,6 +4,7 @@ use nssa_core::{
};
use token_core::TokenHolding;
#[must_use]
pub fn transfer(
sender: AccountWithMetadata,
recipient: AccountWithMetadata,
@@ -95,7 +96,7 @@ pub fn transfer(
_ => {
panic!("Mismatched token holding types for transfer");
}
};
}
let mut sender_post = sender.account;
sender_post.data = Data::from(&sender_holding);