Bignumber
ethers.js 使用什麼大數字庫?
從與 ethers.js 的契約中記錄一個值,我得到了這個:
tokenBalance: v _hex: "0x033b2b2062ddfc98de7fffff" _ethersType: "BigNumber
這是bn.js、bignumber.js的實例還是自定義實現?
ethers.js庫在內部使用 BN.js 進行數學運算,但公開的 BigNumber 類將所有值序列化為不可變字元串,並使用 Object.defineProperty 確保生成的對像是完全不可變的。所以,你看到的既不是 BN.js 也不是 bignumber.js。自定義實現可能是描述它的最佳方式,但這太過分了。
作為旁注;使用 BN.js 的原因是它是elliptic的一部分,因此無論如何都需要它,因此它不包含第二個 Big Number 庫,而是簡單地重用無論如何都需要存在的 Big Number 庫。:)