levana_perpswap_cosmos/
bridge.rs1#![allow(missing_docs)]
2use crate::contracts::market::entry::{ExecuteMsg, QueryMsg};
3use crate::prelude::*;
4use cosmwasm_std::{Addr, Binary, Event};
5use serde::{Deserialize, Serialize};
6
7#[derive(Serialize, Deserialize, Debug, Clone)]
8pub struct ClientToBridgeWrapper {
9 pub msg_id: u64,
10 pub user: Addr,
11 pub msg: ClientToBridgeMsg,
12}
13
14#[allow(clippy::large_enum_variant)]
15#[derive(Serialize, Deserialize, Debug, Clone)]
16pub enum ClientToBridgeMsg {
17 QueryMarket {
18 query_msg: QueryMsg,
19 },
20 ExecMarket {
21 exec_msg: ExecuteMsg,
22 funds: Option<NumberGtZero>,
23 },
24 RefreshPrice,
25 Crank,
26 MintCollateral {
27 amount: NumberGtZero,
28 },
29 MintAndDepositLp {
30 amount: NumberGtZero,
31 },
32
33 TimeJumpSeconds {
34 seconds: i64,
35 },
36}
37
38#[derive(Serialize, Deserialize, Debug, Clone)]
39pub struct BridgeToClientWrapper {
40 pub msg_id: u64,
41 pub elapsed: f64,
42 pub msg: BridgeToClientMsg,
43}
44
45#[derive(Serialize, Deserialize, Debug, Clone)]
46pub enum BridgeToClientMsg {
47 MarketQueryResult { result: Binary },
48 MarketExecSuccess { events: Vec<Event> },
49 MarketExecFailure(ExecError),
50 TimeJumpResult {},
51}
52
53#[derive(Serialize, Deserialize, Debug, Clone)]
54pub enum ExecError {
55 PerpError(PerpError),
56 Unknown(String),
57}