Moralis Web3 企业级API Moralis Units

2024-02-26 开发教程 Moralis Web3 企业级API 匿名 4

介绍

所有加密交易均以最小值 - Wei 进行。 但为了改善用户体验,在前端通常以 ETH 格式输入转账金额。 用户希望输入值 ​0.0001 TokenA​ 而不是 ​100000000000000 Wei TokenA​。 标准的 web3 方法不方便转换。 最方便的转换方法是使用 ​Moralis.Units​ 辅助函数。

Wei 是以太的最小面额,你应该始终以 Wei 进行计算,并且仅出于显示原因进行转换。

将 ERC20 代币转换为 Wei

要将 ERC20 代币转换为 Wei,您需要指定代币数量和小数位数。

//Example: We want to convert 0.5 BUSD. It has 18 decimals
const busdInWei = Moralis.Units.Token("0.5", "18")
// expected output: 500000000000000000 Wei

代币的小数位数通常可以在 Etherscan、项目网站或 Moralis API 上找到。

将原生资产(ETH/BNB/MATIC 等)转换为 Wei

要将原生资产转换为 Wei,您需要指定原生加密货币的数量。

//Example: We want to convert 0.5 ETH to Wei
const ethInWei = Moralis.Units.ETH("0.5")
// expected output: 500000000000000000 Wei

从 Wei 转换代币值

所有代币值均以 Wei 显示。 如果要以“Eth”样式显示令牌值,可以使用:

//Convert token value to ETH style with 6 decimals
const tokenValue = Moralis.Units.FromWei("2000000000000000000", 6)
//Convert token value to ETH style with 18 decimals
//If you do not specify decimals, 18 decimals will be automatically used
const tokenValue = Moralis.Units.FromWei("2000000000000000000")

请注意,此功能在云代码中尚不可用。 您只能在 SDK 中使用它。 我们很快就会将其添加到云代码中。

代币余额的 Web3 API 响应在 Wei 字段中有小数和余额:

{
"token_address": "0x...b0",
"name": "name",
"symbol": "NAME",
"logo": null,
"thumbnail": null,
"decimals": "18",
"balance": "2000000000000000000"
},

Wei 是以太的最小面额,你应该始终以 Wei 进行计算,并且仅出于显示原因进行转换。