Skip to content

Commit

Permalink
Make cross_tick as checked in invariant-type module
Browse files Browse the repository at this point in the history
  • Loading branch information
wojciech-cichocki committed Apr 3, 2024
1 parent 0846a15 commit f3fac09
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions programs/invariant/invariant-types/src/math.rs
Original file line number Diff line number Diff line change
Expand Up @@ -495,11 +495,19 @@ pub fn cross_tick(tick: &mut RefMut<Tick>, pool: &mut Pool) -> Result<()> {

// When going to higher tick net_liquidity should be added and for going lower subtracted
if (pool.current_tick_index >= tick.index) ^ tick.sign {
// trunk-ignore(clippy/assign_op_pattern)
pool.liquidity = pool.liquidity + tick.liquidity_change;
match pool.liquidity.checked_add(tick.liquidity_change) {
Ok(liquidity) => pool.liquidity = liquidity,
Err(_) => {
return Err(InvariantErrorCode::InvalidPoolLiquidity.into());
}
}
} else {
// trunk-ignore(clippy/assign_op_pattern)
pool.liquidity = pool.liquidity - tick.liquidity_change;
match pool.liquidity.checked_sub(tick.liquidity_change) {
Ok(liquidity) => pool.liquidity = liquidity,
Err(_) => {
return Err(InvariantErrorCode::InvalidPoolLiquidity.into());
}
}
}

Ok(())
Expand Down

0 comments on commit f3fac09

Please sign in to comment.