Moralis Units

2022-05-12 14:41 更新

介紹

所有加密交易均以最小值 - Wei 進行。 但為了改善用戶體驗,在前端通常以 ETH 格式輸入轉(zhuǎn)賬金額。 用戶希望輸入值 ?0.0001 TokenA? 而不是 ?100000000000000 Wei TokenA?。 標準的 web3 方法不方便轉(zhuǎn)換。 最方便的轉(zhuǎn)換方法是使用 ?Moralis.Units? 輔助函數(shù)。

Wei 是以太的最小面額,你應該始終以 Wei 進行計算,并且僅出于顯示原因進行轉(zhuǎn)換。

將 ERC20 代幣轉(zhuǎn)換為 Wei

要將 ERC20 代幣轉(zhuǎn)換為 Wei,您需要指定代幣數(shù)量和小數(shù)位數(shù)。

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

代幣的小數(shù)位數(shù)通??梢栽?nbsp;Etherscan、項目網(wǎng)站或 Moralis API 上找到。

將原生資產(chǎn)(ETH/BNB/MATIC 等)轉(zhuǎn)換為 Wei

要將原生資產(chǎn)轉(zhuǎn)換為 Wei,您需要指定原生加密貨幣的數(shù)量。

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

從 Wei 轉(zhuǎn)換代幣值

所有代幣值均以 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 字段中有小數(shù)和余額:

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

Wei 是以太的最小面額,你應該始終以 Wei 進行計算,并且僅出于顯示原因進行轉(zhuǎn)換。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號