// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; /** * @title IChain138BatchEmitter * @notice Chain 138 companion: commit batch locally and optionally CCIP to mainnet hub. */ interface IChain138BatchEmitter { event BatchCommittedOn138( uint64 indexed batchId, bytes32 indexed paymentsRoot, uint256 checkpointBlock, uint16 txCount ); event BatchSentToMainnet(uint64 indexed batchId, bytes32 indexed messageId); function commitBatch( uint64 batchId, bytes32 paymentsRoot, uint256 checkpointBlock, uint256 startBlock, uint16 txCount, bytes32[] calldata txHashes ) external; function sendBatchToMainnet( uint64 batchId, bytes calldata encodedCheckpointPayload, uint256 linkFee ) external returns (bytes32 messageId); function setMainnetCheckpoint(address mainnetCheckpoint) external; }