Anchor Safe Math

``` use anchorlang::prelude::*; use safemath::{SafeMath};

[program]

pub mod example { use super::*;

pub fn instruction(ctx: Context, 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