// SPDX-License-Identifier: MIT pragma solidity ^0.8.7; import "@openzeppelin/contracts/access/Ownable.sol"; import {FxBaseRootTunnel} from "../tunnel/FxBaseRootTunnel.sol"; /** * @title FxStateRootTunnel */ contract FxStateRootTunnel is FxBaseRootTunnel, Ownable { bytes public latestData; address public stFURY; constructor( address _checkpointManager, address _fxRoot, address _fxChildTunnel, address _stFURY ) FxBaseRootTunnel(_checkpointManager, _fxRoot) { setFxChildTunnel(_fxChildTunnel); stFURY = _stFURY; } function _processMessageFromChild(bytes memory data) internal override { latestData = data; } function sendMessageToChild(bytes memory message) public { require(msg.sender == stFURY, "Not stFURY"); _sendMessageToChild(message); } function setStFURY(address _stFURY) external onlyOwner { stFURY = _stFURY; } }