1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4use uuid::Uuid;
5
6use crate::common::{AccountProxy, ProofType, PubkeyWrapper, Session};
7
8#[derive(Debug, Deserialize, Serialize)]
9pub struct ApiKeyQuery {
10 pub api_key: String,
11}
12
13#[derive(Deserialize, Serialize)]
14pub struct StartSessionRequest {
15 pub genesis_accounts: BTreeMap<PubkeyWrapper, AccountProxy>,
16}
17
18#[derive(Deserialize, Serialize)]
19pub struct StartSessionResponse {
20 pub session_id: Uuid,
21}
22
23#[derive(Deserialize, Serialize)]
24pub struct SendTransactionRequest {
25 pub transaction: Vec<u8>,
26}
27
28#[derive(Deserialize, Serialize)]
29pub struct SendTransactionResponse {
30 pub remaining_transactions_in_session: u8,
31}
32
33#[derive(Deserialize, Serialize)]
34pub struct PollSessionResponse {
35 pub session: Session,
36 pub transactions: Option<Vec<String>>,
37}
38
39#[derive(Deserialize, Serialize)]
40pub struct EndSessionRequest {
41 pub proof_type: ProofType,
42}