use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct JsExecuteSubmissionAndWaitRequest {
#[serde(rename = "preparedTransaction")]
pub prepared_transaction: String,
#[serde(rename = "partySignatures")]
pub party_signatures: Box<models::PartySignatures>,
#[serde(rename = "deduplicationPeriod", skip_serializing_if = "Option::is_none")]
pub deduplication_period: Option<Box<models::DeduplicationPeriod2>>,
#[serde(rename = "submissionId")]
pub submission_id: String,
#[serde(rename = "userId", skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(rename = "hashingSchemeVersion")]
pub hashing_scheme_version: HashingSchemeVersion,
#[serde(rename = "minLedgerTime", skip_serializing_if = "Option::is_none")]
pub min_ledger_time: Option<Box<models::MinLedgerTime>>,
}
impl JsExecuteSubmissionAndWaitRequest {
pub fn new(prepared_transaction: String, party_signatures: models::PartySignatures, submission_id: String, hashing_scheme_version: HashingSchemeVersion) -> JsExecuteSubmissionAndWaitRequest {
JsExecuteSubmissionAndWaitRequest {
prepared_transaction,
party_signatures: Box::new(party_signatures),
deduplication_period: None,
submission_id,
user_id: None,
hashing_scheme_version,
min_ledger_time: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum HashingSchemeVersion {
#[serde(rename = "HASHING_SCHEME_VERSION_UNSPECIFIED")]
HashingSchemeVersionUnspecified,
#[serde(rename = "HASHING_SCHEME_VERSION_V2")]
HashingSchemeVersionV2,
#[serde(rename = "HASHING_SCHEME_VERSION_V3")]
HashingSchemeVersionV3,
}
impl Default for HashingSchemeVersion {
fn default() -> HashingSchemeVersion {
Self::HashingSchemeVersionUnspecified
}
}