#solana #blockchain #math #safe #wrapper #primitive #type

solana-safe-math

为 Solana 程序中使用的原始数值类型提供安全的数学运算包装器

1 个不稳定版本

0.1.0 2022年1月31日

#331#safe

每月 36 次下载

自定义许可证

6KB
69

Solana Safe Math

 use solana_safe_math::{SafeMath};
 
 fn process_init_escrow(
   accounts: &[AccountInfo],
   amount: u64,
   program_id: &Pubkey
 ) -> ProgramResult {
   let val = 10_u64;
  
   val.safe_add(amount)?;
   val.safe_sub(amount)?;
   val.safe_mul(amount)?;
   val.safe_div(amount)?;
   val.safe_pow(8_u32)?;
 }

支持 u128u64u32u16u8


lib.rs:

Anchor Safe Math

anchor_safe_math 是一组辅助数值运算函数集合,用于消除检查溢出、下溢和除以零错误时的冗余。

示例

use solana_safe_math::{SafeMath};
use solana_program::{entrypoint::ProgramResult};

fn process_init_escrow(
  accounts: &[AccountInfo],
  amount: u64,
  program_id: &Pubkey
) -> ProgramResult {
  let val = 10_u64;
 
  val.safe_add(amount)?;
  val.safe_sub(amount)?;
  val.safe_mul(amount)?;
  val.safe_div(amount)?;
  val.safe_pow(8_u32)?;
}

依赖项

~16–24MB
~417K SLoC