gmsol_sdk/js/simulation/
shift.rs1use serde::{Deserialize, Serialize};
4use tsify_next::Tsify;
5use wasm_bindgen::prelude::*;
6
7use crate::{
8 js::{instructions::create_shift::CreateShiftParamsJs, simulation::encode_borsh_base64},
9 simulation::shift::ShiftSimulationOutput,
10};
11
12#[derive(Debug, Serialize, Deserialize, Tsify)]
14#[tsify(into_wasm_abi, from_wasm_abi)]
15pub struct SimulateShiftArgs {
16 pub(crate) params: CreateShiftParamsJs,
17}
18
19#[wasm_bindgen(js_name = ShiftSimulationOutput)]
21pub struct JsShiftSimulationOutput {
22 pub(crate) output: ShiftSimulationOutput,
23}
24
25#[wasm_bindgen(js_class = ShiftSimulationOutput)]
26impl JsShiftSimulationOutput {
27 pub fn deposit_report(&self) -> crate::Result<String> {
29 encode_borsh_base64(self.output.deposit_report())
30 }
31
32 pub fn withdraw_report(&self) -> crate::Result<String> {
34 encode_borsh_base64(self.output.withdraw_report())
35 }
36}