Ошибка: возвращенные значения недействительны, закончились ли они?на самоуничтожение () - PullRequest
0 голосов
/ 18 января 2019

код работает нормально, потому что я слежу за онлайн-курсом. моя проблема в том, что когда я вхожу в 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)
...