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

/**
 * @title M00BridgeStorage
 * @notice Namespaced wiring for Chain 138 ↔ Ethereum Mainnet mirror / tether / checkpoint v2.
 */
library M00BridgeStorage {
    /// @custom:storage-location erc7201:dbis.storage.M00Bridge
    bytes32 private constant SLOT =
        0x4d30304272696467650000000000000000000000000000000000000000000000;

    struct Layout {
        address chain138BatchEmitter;
        address chain138Mirror;
        address mainnetCheckpoint;
        address mainnetMirror;
        address mainnetTether;
        address rwaTokenFactory;
        address rwaTokenRegistry;
        uint64 lastCommittedBatchId;
        uint256 lastAnchoredBlock138;
    }

    function layout() internal pure returns (Layout storage l) {
        bytes32 slot = SLOT;
        assembly {
            l.slot := slot
        }
    }
}
