// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;
import "./IRelay.sol";
// Reflect the CW Packet
struct Packet {
string sender;
Msg msg;
}
// Message called on the voice
struct Msg {
MsgType msgType;
// Requests on the voice (Exec / Query)
bytes[] data;
}
// Type of voice message
enum MsgType {
Execute
}
// Query
// Type of message called on proxy contract
enum EvmMsgType {
Call,
DelegateCall
}
// Data to execute by proxy
struct CallMessage {
address to;
bool allowFailure;
uint256 value;
bytes data;
}
// Message called on the proxy contract
// Reflect EvmMsg<Address>
struct EvmMsg {
EvmMsgType msgType;
bytes message;
}
struct ExecuteResult {
bool success;
bytes data;
}
struct ExecuteResponsePacket {
address executedBy;
ExecuteResult[] result;
}