界: Code Quality

程式碼品質不佳,會導致無法預料的行為。從使用者的角度來看,這通常表現為可用性不佳。對於攻擊者而言,這提供了以意想不到的方式向系統施加壓力的機會。

Dead Code

Abstract
此指令將永不被執行。
Explanation
周圍的程式碼將會使此指令永不執行。

範例:第二個 if 指令的條件將無法滿足。變數 s 不能為 Null,但只能將 s 設為非 Null 值的路徑卻存在 return 指令。


String s = null;

if (b) {
s = "Yes";
return;
}

if (s != null) {
Dead();
}
desc.internal.cpp.dead_code
Abstract
函數定義了沒有效果的程式碼。
Explanation
在 Solidity 中,開發人員可以編寫沒有效果的程式碼,這可能會導致意外行為或程式碼無法執行預期的動作。

範例 1:以下程式碼嘗試更新msg.sender 的餘額,但使用 == 而非 = 來執行更新,此舉沒有任何效果。


function deposit(uint amount) public payable {
require(msg.value == amount, 'incorrect amount');
balance[msg.sender] == amount;
}
desc.structural.solidity.swc135