// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;
import "./IBCTypes.sol";
struct LocalToken {
address denom;
uint128 amount;
}
interface IRelay {
event DenomCreated(uint64 indexed packetSequence, string channelId, string denom, address token);
event Received(
uint64 packetSequence,
string channelId,
string sender,
address indexed receiver,
string denom,
address indexed token,
uint256 amount
);
event Sent(
uint64 packetSequence,
string channelId,
address indexed sender,
string receiver,
string denom,
address indexed token,
uint256 amount
);
event Refunded(
uint64 packetSequence,
string channelId,
address indexed sender,
string receiver,
string denom,
address indexed token,
uint256 amount
);
function send(
string calldata sourceChannel,
bytes calldata receiver,
LocalToken[] calldata tokens,
string calldata extension,
IbcCoreClientV1Height.IbcCoreClientV1HeightData calldata timeoutHeight,
uint64 timeoutTimestamp
) external;
}