簡體   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