错误:返回的值无效,是否用完了?在selfdestruct()上

时间:2019-01-18 15:55:10

标签: javascript ethereum solidity self-destruction

代码运行正常,因为我正在关注在线速成课程。我的问题是,当我输入selfdestruct()时,它会说一些关于错误的信息,我不确定是什么。请看一下,看看有什么问题。

下面是我每次添加此问题时弹出的代码:

address payable admin;

function endSale() public {
    require(msg.sender == admin, "must be admin");
    require(tokenContract.transfer(admin, tokenContract.balanceOf(address(this))));
    selfdestruct(admin);
}

请注意,错误仅在我添加

时显示
selfdestruct(admin)

这是测试驱动的时尚代码:

it('ends the token sale', () => {
    return DappToken.deployed().then((instance) => {
      //grab token instance first
      tokenInstance = instance;
      return DappTokenSale.deployed();
    }).then((instance) => {
      //then grab token sale instance
      tokenSaleInstance = instance;
      //try to end the sale from account other than the admin
      return tokenSaleInstance.endSale({ from: buyer });
    }).then(assert.fail).catch((error) => {
      assert(error.message.indexOf('revert') >= 0, 'must be admin to end sale');
      //end sale as admin
      return tokenSaleInstance.endSale({ from: admin});
    }).then((receipt) => {
      //receipt
      return tokenInstance.balanceOf(admin);
    }).then((balance) => {
      //return unsold dapp tokens to admin
      assert.equal(balance.toNumber(), 999990, 'returns all unsold dapp tokens to admin');
      // check that the token price was reset when the selfDestruct was called
      return tokenSaleInstance.tokenPrice();
    }).then((price) => {
      assert.equal(price.toNumber(), 0, 'token price was reset');
    });
  });

我正在使用编译指示^ 0.5.0

这是我的错误日志:

Error: Returned values aren't valid, did it run Out of Gas?
  at ABICoder.decodeParameters (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\web3-eth-abi\src\index.js:226:1)
  at Contract._decodeMethodReturn (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\web3-eth-contract\src\index.js:465:1)
  at Method.outputFormatter (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\web3-eth-contract\src\index.js:818:1)
  at Method.formatOutput (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\web3-eth-contract\~\web3-core-method\src\index.js:163:1)
  at sendTxCallback (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\web3-eth-contract\~\web3-core-method\src\index.js:473:1)
  at C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\web3-core-requestmanager\src\index.js:147:1
  at C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-provider\wrapper.js:112:1
  at XMLHttpRequest.request.onreadystatechange (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\web3-providers-http\src\index.js:96:1)
  at XMLHttpRequestEventTarget.dispatchEvent (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\xhr2-cookies\dist\xml-http-request-event-target.js:34:1)
  at XMLHttpRequest._setReadyState (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\xhr2-cookies\dist\xml-http-request.js:208:1)
  at XMLHttpRequest._onHttpResponseEnd (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\xhr2-cookies\dist\xml-http-request.js:318:1)
  at IncomingMessage.<anonymous> (C:\Users\KimVillanueva\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\xhr2-cookies\dist\xml-http-request.js:289:47)
  at endReadableNT (_stream_readable.js:1094:12)
  at process._tickCallback (internal/process/next_tick.js:63:19)

0 个答案:

没有答案