![](/img/trans.png)
[英]Call function of smart contract after deploying smart contract in Solidity
[英]Unreachable code after an inherited function call in Solidity
編譯代碼
contract Bar {
function blockingFunction() public pure returns (bool) {
assembly {
return(0,0x20)
}
}
}
contract Foo is Bar {
function foo() public pure returns(bool) {
bool result = blockingFunction();
require(result == true, "msg");
return result;
}
}
給我一個警告
Warning: Unreachable code.
--> contracts/implementation/Foo.sol:18:9:
|
18 | require(result == true, "msg");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning: Unreachable code.
--> contracts/implementation/Foo.sol:19:9:
|
19 | return result;
| ^^^^^^^^^^^^^
這對我來說毫無意義。 blockingFunction
調用似乎阻止了以下代碼的執行,即使它應該返回 boolean。有人能告訴我如何解決這個問題嗎? 這是我的hardhat.config.ts
import "@nomicfoundation/hardhat-toolbox";
import { HardhatUserConfig } from "hardhat/config";
const config: HardhatUserConfig = {
solidity: "0.8.9",
mocha: {
timeout: 100000000
}
}
export default config;
return(p, s) end execution, return data mem[p…(p+s))
執行將以assembly{return(0,0x20)}
代碼結束。 所以當你打電話給這個
bool result = blockingFunction();
之后的代碼將不會執行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.