Bignumber

ethers.js 使用什麼大數字庫?

  • January 18, 2022

從與 ethers.js 的契約中記錄一個值,我得到了這個:

tokenBalance: v
 _hex: "0x033b2b2062ddfc98de7fffff"
 _ethersType: "BigNumber

這是bn.jsbignumber.js的實例還是自定義實現?

ethers.js庫在內部使用 BN.js 進行數學運算,但公開的 BigNumber 類將所有值序列化為不可變字元串,並使用 Object.defineProperty 確保生成的對像是完全不可變的。所以,你看到的既不是 BN.js 也不是 bignumber.js。自定義實現可能是描述它的最佳方式,但這太過分了。

作為旁注;使用 BN.js 的原因是它是elliptic的一部分,因此無論如何都需要它,因此它不包含第二個 Big Number 庫,而是簡單地重用無論如何都需要存在的 Big Number 庫。:)

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