代码工作正常,因为我正在学习在线速成课程。我的问题是当我输入 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)