无符号整数的 NEAR 和安全数学

NEAR and safe math on unsigned integers

在以太坊 Solidity 上,处理无符号整数余额时需要使用一个名为 SafeMath 的特殊库。这是因为 integer overflow exploits.

用 Rust 编写的 NEAR 智能合约是否需要类似的缓解措施?还是 Rust 会自动捕获溢出并恐慌?

默认情况下,Rust 为调试版本启用溢出检查,但在优化发布版本中禁用。您可以在 Cargo.toml 中轻松调整它,方法是在 profile.release 部分设置 overflow-checks

[profile.release]
# ...
overflow-checks = true

NEAR 核心合约 opt-into the paranoid mode.

即使您明确选择使用 saturating_* or checked_* 方法,仍建议进行额外检查。