LayerCover

ISalvageManager

Interface reference for ISalvageManager.

Interface

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

/**
 * @title ISalvageManager
 * @notice Interface for the salvage token distribution manager
 */
interface ISalvageManager {
    /**
     * @notice Record a salvage deposit from a claimed policy
     * @param salvageToken Token address
     * @param amount Amount of salvage tokens
     * @param snapshotId Snapshot ID for pro-rata distribution
     */
    function recordSalvageDeposit(address salvageToken, uint256 amount, uint256 snapshotId) external;

    /**
     * @notice Distribute accumulated salvage tokens to a user
     * @param user User address
     * @param salvageToken Token address
     */
    function distributeSalvage(address user, address salvageToken) external;

    /**
     * @notice Distribute salvage tokens with a custom round limit
     * @param user User address
     * @param salvageToken Token address
     * @param maxRounds Maximum rounds to process (0 processes all remaining)
     */
    function distributeSalvage(address user, address salvageToken, uint256 maxRounds) external;

    /**
     * @notice Initialize a salvage snapshot for pending deposits
     * @param salvageToken Token address
     * @param snapshotId Snapshot ID to use
     */
    function initializeSalvageSnapshot(address salvageToken, uint256 snapshotId) external;

    /**
     * @notice Get all salvage tokens tracked
     * @return Array of salvage token addresses
     */
    function getSalvageTokens() external view returns (address[] memory);





}