Solidity

測試時出現錯誤 web3.toWei is not a function

  • September 21, 2018

我已經安裝了 web3 最新版本 1.0.0-beta.36。當我使用 truffle test 執行測試案例時,我正在使用從 openzeppelin 使用的輔助庫,它顯示錯誤為

TypeError: web3.toWei 不是函式

不只是 web3.toWei,我也無法使用 bignumber 。我不知道為什麼我無法使用 openzeppelin 的助手 這是助手文件夾中名為 ether.js 的文件

function ether (n) {
 return new web3.BigNumber(web3.toWei(n, 'ether'));
}

module.exports = {
 ether,
};

對於大數字,顯示錯誤的程式碼是

require('chai')
 .use(require('chai-bignumber')(BigNumber))
 .should();

const RefundableCrowdsale = artifacts.require('RefundableCrowdsaleImpl');
const SimpleToken = artifacts.require('SimpleToken');

contract('RefundableCrowdsale', function ([_, wallet, investor, purchaser, anyone]) {
 const rate = new BigNumber(1);
 const goal = ether(48);
 const lessThanGoal = ether(45);
 const tokenSupply = new BigNumber('1e22');

我已經安裝了 chai-bignumber 和 web3

truffle 5.0.0-beta.0 的 beta 版本存在一些錯誤,所以我將版本更改為 truffle 4.1.14。現在所有的測試案例都執行正常。

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