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
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)?,
})
}
}