30 lines
1.4 KiB
Solidity
30 lines
1.4 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.28;
|
|
|
|
import { IERC165 } from "@openzeppelin/contracts/interfaces/IERC165.sol";
|
|
|
|
/// @title IERC7802
|
|
/// @notice Defines the interface for crosschain ERC20 transfers.
|
|
interface IERC7802 is IERC165 {
|
|
/// @notice Emitted when a crosschain transfer mints tokens.
|
|
/// @param to Address of the account tokens are being minted for.
|
|
/// @param amount Amount of tokens minted.
|
|
/// @param sender Address of the account that finilized the crosschain transfer.
|
|
event CrosschainMint(address indexed to, uint256 amount, address indexed sender);
|
|
|
|
/// @notice Emitted when a crosschain transfer burns tokens.
|
|
/// @param from Address of the account tokens are being burned from.
|
|
/// @param amount Amount of tokens burned.
|
|
/// @param sender Address of the account that initiated the crosschain transfer.
|
|
event CrosschainBurn(address indexed from, uint256 amount, address indexed sender);
|
|
|
|
/// @notice Mint tokens through a crosschain transfer.
|
|
/// @param _to Address to mint tokens to.
|
|
/// @param _amount Amount of tokens to mint.
|
|
function crosschainMint(address _to, uint256 _amount) external;
|
|
|
|
/// @notice Burn tokens through a crosschain transfer.
|
|
/// @param _from Address to burn tokens from.
|
|
/// @param _amount Amount of tokens to burn.
|
|
function crosschainBurn(address _from, uint256 _amount) external;
|
|
} |