Truffle-Console

在 Truffle Console 中更改數字輸出的格式

  • July 14, 2019

當我在 Truffle 控制台中返回一個大數字時,我的結果格式類似於:

truffle(development)> tokenInstance.balanceOf(accounts[2])
<BN: 64>

但是,在我使用的其中一個影片教程中,影片顯示的輸出類似於:

truffle(development)> tokenInstance.balanceOf(accounts[2])
BigNumber { s: 1, e: 2, c: [ 100 ] }

松露中是否有任何配置選項,以便我的輸出看起來像後者?(而且我並不擔心將我的結果轉換為以 10 為底:我知道我可以通過回調和 toNumber() 來做到這一點。)

Truffle v5 中的格式發生了變化,因為它基於使用 bn.js 的 web3 v1。要使用以前使用的格式,您必須安裝基於 web3 v0.20 的 Truffle v4,它使用 bignumber.js。

您可以通過以下方式將數字格式更改為 BigNumber

// Choices are:  `["BigNumber", "BN", "String"].
const Example = artifacts.require("Example");
Example.numberFormat = "BigNumber";

如 5.0 重大更改部分所述:

數值返回值現在是 BN 對象,而不是以前預設的 BigNumber.js。這兩個項目使用明顯不同的 API 語義,因此您可能需要查看它們。

Truffle 為無法批量切換的項目提供了一種兼容模式。將 numberFormat 設置為“BigNumber”、“String”或“BN”以供選擇。

引用自:https://ethereum.stackexchange.com/questions/66390