Skip to content

SCSVS-BRIDGE-1

S9.1 State Management

Control Objective

Ensure efficient and secure handling of state within smart contracts to prevent data corruption and unexpected behavior.

S9.1.A Efficient and Secure State Handling

SCSVS VR ID Requirement L1 L2 L3 SWE
S9.1.A1 Ensure that payable functions in contracts handle all ETH passed in msg.value and provide a mechanism for withdrawal to avoid ETH being locked in the contract. ✓ ✓
S9.1.A2 Verify that deleting a variable of a nested structure correctly resets all nested level fields to default values to avoid unexpected behavior. ✓ ✓
S9.1.A3 Verify that storage structs and arrays with types shorter than 32 bytes are handled correctly, avoiding data corruption when encoded directly from storage using the experimental ABIEncoderV2. ✓ ✓
S9.1.A4 Verify that storage arrays containing structs or other statically-sized arrays are properly read and encoded in external function calls to prevent data corruption. ✓ ✓
S9.1.A5 Ensure that copying bytes arrays from memory or calldata to storage handles empty arrays correctly, avoiding data corruption when the target array's length is increased subsequently without storing new data. ✓ ✓

S9.1.B State Channels

SCSVS VR ID Requirement L1 L2 L3 SWE
S9.1.B1 Verify that global state updates are correctly handled when working with memory copies to ensure accurate state management. ✓ ✓