Function: validateSessionKey(address smartAccount, uint48 validUntil, uint48 validAfter, address sessionValidationModule, byte[] sessionKeyData, byte[32][] merkleProof)
Validates that Session Key and parameters are enabled by being included into the Merkle tree.
Inputs
smartAccountControl: Full.
Constraints: Must be a valid Ethereum address.
Impact: The
smartAccountfor which the session key is being validated.
validUntilControl: Full.
Constraints: N/A.
Impact: The timestamp when the session key expires.
validAfterControl: Full.
Constraints: N/A.
Impact: The timestamp when the session key becomes valid.
sessionValidationModuleControl: Full.
Constraints: Must be a valid contract address.
Impact: The address of the Session Validation Module.
sessionKeyDataControl: Full.
Constraints: N/A.
Impact: The session parameters (limitations/permissions).
merkleProofControl: Full.
Constraints: N/A.
Impact: The Merkle proof for the leaf that represents this session key and params.
Branches and code coverage (including function calls)
Intended branches
Function successfully fetches the session key storage for the provided smart account.
Negative behavior
Function reverts with
SessionNotApproveddue to invalid session key (data).
Function call analysis
rootFunction -> verify(bytes32[], bytes32, bytes32)What is controllable?:
merkleProof,smartAccount,validUntil,validAfter,sessionValidationModule, andsessionKeyData.If return value controllable, how is it used and how can it go wrong?: It is used to verify the proof.
What happens if it reverts, reenters, or does other unusual control flow?: N/A.