Skip to content

Commit 1d9086c

Browse files
authored
Merge pull request #28 from datachainlab/audit-202409-s8
S8: fix to remove unused code Signed-off-by: Jun Kimura <[email protected]>
2 parents 86e5a24 + 30a68cb commit 1d9086c

7 files changed

+25
-46
lines changed

contracts/Asn1Decode.sol

+2
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ library NodePtr {
5555
}
5656
}
5757

58+
// slither-disable-start dead-code
5859
library Asn1Decode {
5960
using NodePtr for uint256;
6061
using BytesUtils for bytes;
@@ -226,3 +227,4 @@ library Asn1Decode {
226227
return NodePtr.getPtr(ix, ixFirstContentByte, ixLastContentByte);
227228
}
228229
}
230+
// slither-disable-end dead-code

contracts/ILCPClientErrors.sol

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ interface ILCPClientErrors {
88
error LCPClientClientStateInvalidKeyExpiration();
99
error LCPClientClientStateInvalidMrenclaveLength();
1010
error LCPClientClientStateUnexpectedMrenclave();
11-
error LCPClientClientStateEmptyOperators();
1211
error LCPClientClientStateInvalidOperatorAddress();
1312
error LCPClientClientStateInvalidOperatorAddressLength();
1413
error LCPClientClientStateInvalidOperatorsNonce();

contracts/LCPClientBase.sol

-8
Original file line numberDiff line numberDiff line change
@@ -650,14 +650,6 @@ abstract contract LCPClientBase is ILightClient, ILCPClientErrors {
650650
}
651651
}
652652

653-
function verifyECDSASignature(bytes32 commitment, bytes memory signature, address signer)
654-
internal
655-
pure
656-
returns (bool)
657-
{
658-
return verifyECDSASignature(commitment, signature) == signer;
659-
}
660-
661653
function verifyECDSASignature(bytes32 commitment, bytes memory signature) internal pure returns (address) {
662654
if (uint8(signature[64]) < 27) {
663655
signature[64] = bytes1(uint8(signature[64]) + 27);

contracts/LCPCommitment.sol

-32
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,6 @@ library LCPCommitment {
4444
bytes state;
4545
}
4646

47-
function parseUpdateStateProxyMessage(bytes calldata messageBytes)
48-
internal
49-
pure
50-
returns (UpdateStateProxyMessage memory)
51-
{
52-
HeaderedProxyMessage memory hm = abi.decode(messageBytes, (HeaderedProxyMessage));
53-
// MSB first
54-
// 0-1: version
55-
// 2-3: message type
56-
// 4-31: reserved
57-
if (hm.header != LCP_MESSAGE_HEADER_UPDATE_STATE) {
58-
revert LCPCommitmentUnexpectedProxyMessageHeader();
59-
}
60-
return abi.decode(hm.message, (UpdateStateProxyMessage));
61-
}
62-
6347
struct MisbehaviourProxyMessage {
6448
PrevState[] prevStates;
6549
bytes context;
@@ -71,22 +55,6 @@ library LCPCommitment {
7155
bytes32 stateId;
7256
}
7357

74-
function parseMisbehaviourProxyMessage(bytes calldata messageBytes)
75-
internal
76-
pure
77-
returns (MisbehaviourProxyMessage memory)
78-
{
79-
HeaderedProxyMessage memory hm = abi.decode(messageBytes, (HeaderedProxyMessage));
80-
// MSB first
81-
// 0-1: version
82-
// 2-3: message type
83-
// 4-31: reserved
84-
if (hm.header != LCP_MESSAGE_HEADER_MISBEHAVIOUR) {
85-
revert LCPCommitmentUnexpectedProxyMessageHeader();
86-
}
87-
return abi.decode(hm.message, (MisbehaviourProxyMessage));
88-
}
89-
9058
struct ValidationContext {
9159
bytes32 header;
9260
bytes context;

contracts/LCPOperator.sol

+2
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ library LCPOperator {
2121
// chainTypeSalt(CHAIN_TYPE_EVM, hex"")
2222
bytes32 internal constant CHAIN_TYPE_EVM_SALT = keccak256(abi.encodePacked(CHAIN_TYPE_EVM, hex""));
2323

24+
// slither-disable-next-line dead-code
2425
function chainTypeSalt(ChainType chainType, bytes memory args) internal pure returns (bytes32) {
2526
return keccak256(abi.encodePacked(chainType, args));
2627
}
2728

29+
// slither-disable-next-line dead-code
2830
function domainSeparatorUniversal() internal pure returns (bytes32) {
2931
return keccak256(
3032
abi.encode(

slither.config.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"detectors_to_run": "arbitrary-send-erc20,array-by-reference,incorrect-shift,name-reused,rtlo,suicidal,uninitialized-storage,arbitrary-send-erc20-permit,controlled-array-length,controlled-delegatecall,delegatecall-loop,msg-value-loop,reentrancy-eth,unchecked-transfer,weak-prng,domain-separator-collision,erc20-interface,erc721-interface,locked-ether,mapping-deletion,shadowing-abstract,tautology,write-after-write,boolean-cst,reentrancy-no-eth,reused-constructor,tx-origin,unchecked-lowlevel,unchecked-send,variable-scope,void-cst,events-access,events-maths,incorrect-unary,boolean-equal,deprecated-standards,erc20-indexed,function-init-state,pragma,reentrancy-unlimited-gas,immutable-states,var-read-using-this",
2+
"detectors_to_run": "arbitrary-send-erc20,array-by-reference,incorrect-shift,name-reused,rtlo,suicidal,uninitialized-storage,arbitrary-send-erc20-permit,controlled-array-length,controlled-delegatecall,delegatecall-loop,msg-value-loop,reentrancy-eth,unchecked-transfer,weak-prng,domain-separator-collision,erc20-interface,erc721-interface,locked-ether,mapping-deletion,shadowing-abstract,tautology,write-after-write,boolean-cst,reentrancy-no-eth,reused-constructor,tx-origin,unchecked-lowlevel,unchecked-send,variable-scope,void-cst,events-access,events-maths,incorrect-unary,boolean-equal,deprecated-standards,erc20-indexed,function-init-state,pragma,reentrancy-unlimited-gas,immutable-states,var-read-using-this,dead-code",
33
"filter_paths": "(test/|node_modules/|contracts/proto/)"
44
}

test/TestHelper.t.sol

+20-4
Original file line numberDiff line numberDiff line change
@@ -108,12 +108,20 @@ library LCPCommitmentTestHelper {
108108
LCPCommitment.trustingPeriodContextEval(context, currentTimestampNanos);
109109
}
110110

111-
function parseUpdateStateProxyMessage(bytes calldata commitmentBytes)
111+
function parseUpdateStateProxyMessage(bytes calldata messageBytes)
112112
public
113113
pure
114-
returns (LCPCommitment.UpdateStateProxyMessage memory commitment)
114+
returns (LCPCommitment.UpdateStateProxyMessage memory)
115115
{
116-
return LCPCommitment.parseUpdateStateProxyMessage(commitmentBytes);
116+
LCPCommitment.HeaderedProxyMessage memory hm = abi.decode(messageBytes, (LCPCommitment.HeaderedProxyMessage));
117+
// MSB first
118+
// 0-1: version
119+
// 2-3: message type
120+
// 4-31: reserved
121+
if (hm.header != LCPCommitment.LCP_MESSAGE_HEADER_UPDATE_STATE) {
122+
revert LCPCommitment.LCPCommitmentUnexpectedProxyMessageHeader();
123+
}
124+
return abi.decode(hm.message, (LCPCommitment.UpdateStateProxyMessage));
117125
}
118126

119127
function parseVerifyMembershipCommitmentProofs(bytes calldata proofBytes)
@@ -129,7 +137,15 @@ library LCPCommitmentTestHelper {
129137
pure
130138
returns (LCPCommitment.MisbehaviourProxyMessage memory)
131139
{
132-
return LCPCommitment.parseMisbehaviourProxyMessage(messageBytes);
140+
LCPCommitment.HeaderedProxyMessage memory hm = abi.decode(messageBytes, (LCPCommitment.HeaderedProxyMessage));
141+
// MSB first
142+
// 0-1: version
143+
// 2-3: message type
144+
// 4-31: reserved
145+
if (hm.header != LCPCommitment.LCP_MESSAGE_HEADER_MISBEHAVIOUR) {
146+
revert LCPCommitment.LCPCommitmentUnexpectedProxyMessageHeader();
147+
}
148+
return abi.decode(hm.message, (LCPCommitment.MisbehaviourProxyMessage));
133149
}
134150
}
135151

0 commit comments

Comments
 (0)