繁体   English   中英

在智能合约中将以太坊 uint256 转换为 Solana Rust u64

[英]Convert Ethereum uint256 to Solana Rust u64 in smart contract

如何将以太坊 uint256 变量转换为 Solana Rust?

我应该在 Solana Rust 中使用 u64 和 9 位小数,而不是在以太坊中使用 18 位小数吗?

根据 Solana 的文档,灯的值为 0.000000001 SOL。 那是9位小数。

所以看起来 9 位小数是 Solana 的标准,与以太坊的 18 位小数形成对比。

Rust中的u64最大值为18,446,744,073,709,551,615...

Rust 中的 u128 最大值为 2^128 - 1

不知何故Rust Solana没有u256! 奇怪的

如果我在所有计算中使用 9 位小数,那么我应该确保 18,446,744,073 对于我所有的 Solana Rust u64 变量的最大值都足够大,对吧? 这是正确的策略吗? 谢谢!

我认为我们不需要像 uint256 这样的额外库,因为 Solana 程序库(他们的令牌库)正在使用 u64 来传输https://github.com/solana-labs/solana-program-library/blob/master/令牌/程序/src/processor.rs#L203

Rust 中的 uint128 实际上足够大。

uint128 的范围是 0 到 2^128 - 1,即 0 到 340,282,366,920,938,463,463,374,607,431,768,211,455

使用 9 位小数,uint128 就足够大了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM