| Crates.io | anchor-safe-math |
| lib.rs | anchor-safe-math |
| version | 0.6.0 |
| created_at | 2022-01-31 12:12:58.42718+00 |
| updated_at | 2025-06-18 13:34:50.43194+00 |
| description | Safe Math wrapper for the primitive numberic types used in an Anchor project |
| homepage | https://github.com/Apocentre/anchor-safe-math |
| repository | https://github.com/Apocentre/anchor-safe-math |
| max_upload_size | |
| id | 524546 |
| size | 61,593 |
use anchor_lang::prelude::*;
use safe_math::{SafeMath};
#[program]
pub mod example {
use super::*;
pub fn instruction(ctx: Context<Instruction>, amount: u64) -> ProgramResult {
let state = &mut ctx.accounts.state;
// You can apply any of the following operations
state.total_amount = state.total_amount.safe_add(amount)?;
state.total_amount = state.total_amount.safe_sub(amount)?;
state.total_amount = state.total_amount.safe_mul(amount)?;
state.total_amount = state.total_amount.safe_div(amount)?;
state.total_amount = state.total_amount.safe_pow(8_u32)?;
}
}
#[derive(Accounts)]
pub struct Instruction<'info> {
...
}
Works with u128, u64, u32, u16 and u8