use super::*;
#[derive(Deserialize, Serialize)]
#[serde(bound(serialize = "N: Serialize", deserialize = "N: for<'a> Deserialize<'a>"))]
pub(crate) struct DeployRequest<N: Network> {
pub program: Program<N>,
pub private_key: Option<PrivateKey<N>>,
pub password: Option<String>,
pub fee: u64,
pub fee_record: Option<Record<N, Plaintext<N>>>,
pub peer_url: Option<String>,
}
#[derive(Deserialize, Serialize)]
#[serde(bound(serialize = "N: Serialize", deserialize = "N: for<'a> Deserialize<'a>"))]
pub(crate) struct ExecuteRequest<N: Network> {
pub program_id: ProgramID<N>,
pub program_function: Identifier<N>,
pub inputs: Vec<String>,
pub private_key: Option<PrivateKey<N>>,
pub password: Option<String>,
pub fee: u64,
pub fee_record: Option<Record<N, Plaintext<N>>>,
pub peer_url: Option<String>,
}
#[derive(Deserialize, Serialize)]
#[serde(bound(serialize = "N: Serialize", deserialize = "N: for<'a> Deserialize<'a>"))]
pub(crate) struct TransferRequest<N: Network> {
pub amount: u64,
pub fee: u64,
pub recipient: Address<N>,
pub transfer_type: String,
pub private_key: Option<PrivateKey<N>>,
pub password: Option<String>,
pub fee_record: Option<Record<N, Plaintext<N>>>,
pub amount_record: Option<Record<N, Plaintext<N>>>,
pub peer_url: Option<String>,
}