all files / contracts/interfaces/ IInterchainProposalSender.sol

100% Statements 0/0
100% Branches 0/0
100% Functions 0/0
100% Lines 0/0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32                                                               
// SPDX-License-Identifier: MIT
 
pragma solidity ^0.8.0;
 
import { InterchainCalls } from '../lib/InterchainCalls.sol';
 
interface IInterchainProposalSender {
    // An error emitted when the given gas is invalid
    error InvalidFee();
 
    // An error emitted when the given address is invalid
    error InvalidAddress();
 
    /**
     * @dev Broadcast the proposal to be executed at multiple destination chains
     * @param calls An array of calls to be executed at the destination chain
     */
    function sendProposals(InterchainCalls.InterchainCall[] memory calls) external payable;
 
    /**
     * @dev Broadcast the proposal to be executed at single destination chain
     * @param destinationChain destination chain
     * @param destinationContract destination contract
     * @param calls An array of calls to be executed at the destination chain
     */
    function sendProposal(
        string calldata destinationChain,
        string calldata destinationContract,
        InterchainCalls.Call[] calldata calls
    ) external payable;
}