// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; /** * @title MockLightClient * @notice Mock light client for testing BridgeVault138 unlock functionality * @dev Always returns true for proof verification in tests */ contract MockLightClient { mapping(bytes32 => mapping(bytes32 => bool)) private _verifiedProofs; bool public alwaysVerify = true; /** * @notice Sets whether proofs should always verify * @param _alwaysVerify If true, all proofs verify; if false, only pre-registered proofs verify */ function setAlwaysVerify(bool _alwaysVerify) external { alwaysVerify = _alwaysVerify; } /** * @notice Registers a proof as verified for testing * @param sourceChain Source chain identifier * @param sourceTx Source transaction hash */ function registerProof(bytes32 sourceChain, bytes32 sourceTx) external { _verifiedProofs[sourceChain][sourceTx] = true; } /** * @notice Verifies a proof * @param sourceChain Source chain identifier * @param sourceTx Source transaction hash * @param proof Proof data (unused in mock) * @return true if proof is verified, false otherwise */ function verifyProof( bytes32 sourceChain, bytes32 sourceTx, bytes calldata proof ) external view returns (bool) { if (alwaysVerify) { return true; } return _verifiedProofs[sourceChain][sourceTx]; } }