/
IIncentivizedMessageEscrow.sol
50 lines (40 loc) · 2.02 KB
/
IIncentivizedMessageEscrow.sol
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;
import { IMessageEscrowStructs } from "./IMessageEscrowStructs.sol";
import { IMessageEscrowErrors } from "./IMessageEscrowErrors.sol";
import { IMessageEscrowEvents } from "./IMessageEscrowEvents.sol";
interface IIncentivizedMessageEscrow is IMessageEscrowStructs, IMessageEscrowErrors, IMessageEscrowEvents {
function bounty(bytes32 messageIdentifier) external view returns(IncentiveDescription memory incentive);
function messageDelivered(bytes32 sourceIdentifier, bytes calldata sourceImplementationIdentifier, bytes32 messageIdentifier) external view returns(bytes32 hasMessageBeenExecuted);
function increaseBounty(
bytes32 messageIdentifier,
uint96 priceOfDeliveryGas,
uint96 priceOfAckGas
) external payable;
function submitMessage(
bytes32 destinationIdentifier,
bytes calldata destinationAddress,
bytes calldata message,
IncentiveDescription calldata incentive,
uint64 deadline
) external payable returns(uint256 gasRefund, bytes32 messageIdentifier);
function processPacket(bytes calldata messagingProtocolContext, bytes calldata message, bytes32 feeRecipient) payable external;
function setRemoteImplementation(bytes32 chainIdentifier, bytes calldata implementation) external;
/**
* @notice Estimates the additional cost to the messaging router to validate the message
* @return asset The asset the token is in. If native token, returns address(0);
* @return amount The number of assets to pay.
*/
function estimateAdditionalCost() external view returns(address asset, uint256 amount);
function timeoutMessage(
bytes32 sourceIdentifier,
bytes calldata implementationIdentifier,
uint256 originBlockNumber,
bytes calldata message
) external payable;
function reemitAckMessage(
bytes32 sourceIdentifier,
bytes calldata implementationIdentifier,
bytes calldata receiveAckWithContext
) external payable;
}