TypeError: balance.toNumber не является функцией - PullRequest
0 голосов
/ 23 января 2019

Может кто-нибудь посмотреть, где проблема?У меня нет идей.это тестовый код из учебника, которому я следую.

it('ends token sale', function() {
  return DappToken.deployed().then(function(instance) {
    // Grab token instance first
    tokenInstance = instance;
    return DappTokenSale.deployed();
  }).then(function(instance) {
    // Then grab token sale instance
    tokenSaleInstance = instance;
    // Try to end sale from account other than the admin
    return tokenSaleInstance.endSale({
      from: buyer
    });
  }).then(assert.fail).catch(function(error) {
    assert(error.message.indexOf('revert' >= 0, 'must be admin to end sale'));
    // End sale as admin
    return tokenSaleInstance.endSale({
      from: admin
    });
  }).then(function(receipt) {
    return tokenInstance.balanceOf(admin);
  }).then(function(balance) {
    assert.equal(balance.toNumber(), 999990, 'returns all unsold dapp tokens to admin');
    // Check that the contract has no balance
    balance = web3.eth.getBalance(tokenSaleInstance.address);
    assert.equal(balance.toNumber(), 0);
  });
});

это журнал ошибок:

TypeError: balance.toNumber is not a function
  at test\DappTokenSale.js:127:28
  at process._tickCallback (internal/process/next_tick.js:68:7)

я пробовал selfdestruct (), но не могу найти исправления излюбые сайты, поэтому я просто передаю оставшиеся токены администратору.но потом я продолжаю сталкиваться с этой проблемой.вот контракт для получения дополнительной справки:

function endSale() public {
    //require admin(only)
    require(msg.sender == admin);
    //transfer remaining dapp tokens to admin
    require(tokenContract.transfer(admin, tokenContract.balanceOf(address(this))));
    admin.transfer(address(this).balance);
}
...