// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/// @notice Minimal v1 TransactionMirror (mainnet).
interface ILegacyMainnetMirror {
    function mirrorTransaction(
        bytes32 txHash,
        address from,
        address to,
        uint256 value,
        uint256 blockNumber,
        uint256 blockTimestamp,
        uint256 gasUsed,
        bool success,
        bytes calldata data
    ) external;

    function mirrorBatchTransactions(
        bytes32[] calldata txHashes,
        address[] calldata froms,
        address[] calldata tos,
        uint256[] calldata values,
        uint256[] calldata blockNumbers,
        uint256[] calldata blockTimestamps,
        uint256[] calldata gasUseds,
        bool[] calldata successes,
        bytes[] calldata datas
    ) external;
}

/// @notice Minimal v1 MainnetTether (mainnet).
interface ILegacyMainnetTether {
    function anchorStateProof(
        uint256 blockNumber,
        bytes32 blockHash,
        bytes32 stateRoot,
        bytes32 previousBlockHash,
        uint256 timestamp,
        bytes calldata signatures,
        uint256 validatorCount
    ) external;
}
