use crate::core_types::{Coin, MsgInternal};
use crate::messages::Message;
use serde::Serialize;
#[derive(Serialize, Debug)]
pub struct MsgSwap {
pub ask_denom: String,
pub offer_coin: Coin,
pub trader: String,
}
impl MsgInternal for MsgSwap {}
impl MsgSwap {
pub fn create(offer_coin: Coin, ask_denom: String, trader: String) -> anyhow::Result<Message> {
let internal = MsgSwap {
ask_denom,
offer_coin,
trader,
};
Ok(Message {
s_type: "market/MsgSwap".into(),
value: serde_json::to_value(internal)?,
})
}
}