use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use cosmwasm_std::{Binary, CosmosMsg, CustomMsg};
use crate::types::OutboundBatchRequest;
#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)]
#[serde(rename_all = "snake_case")]
pub enum RouterMsg {
OutboundBatchRequests {
outbound_batch_requests: Vec<OutboundBatchRequest>,
},
}
impl RouterMsg {
pub fn send_outbound_batch_requests(
outbound_batch_requests: Vec<OutboundBatchRequest>,
) -> Self {
RouterMsg::OutboundBatchRequests {
outbound_batch_requests,
}
}
}
impl From<RouterMsg> for CosmosMsg<RouterMsg> {
fn from(msg: RouterMsg) -> CosmosMsg<RouterMsg> {
CosmosMsg::Custom(msg)
}
}
impl CustomMsg for RouterMsg {}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum SudoMsg {
HandleInboundReq {
sender: String,
chain_type: u32,
source_chain_id: String,
payload: Binary,
},
HandleOutboundAck {
outbound_tx_requested_by: String,
destination_chain_type: u32,
destination_chain_id: String,
outbound_batch_nonce: u64,
execution_code: u64,
execution_status: bool,
exec_flags: Vec<bool>,
exec_data: Vec<Binary>,
},
}