algonaut_indexer 0.5.0

Algorand ledger analytics API.
Documentation
/*
 * Indexer
 *
 * Algorand ledger analytics API.
 *
 * The version of the OpenAPI document: 2.0
 *
 * Generated by: https://openapi-generator.tech
 */

use algonaut_encoding::Bytes;

/// TransactionApplication : Fields for application transactions.  Definition: data/transactions/application.go : ApplicationCallTxnFields

#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct TransactionApplication {
    /// \\[apat\\] List of accounts in addition to the sender that may be accessed from the application's approval-program and clear-state-program.
    #[serde(rename = "accounts", skip_serializing_if = "Option::is_none")]
    pub accounts: Option<Vec<String>>,
    /// \\[apaa\\] transaction specific arguments accessed from the application's approval-program and clear-state-program.
    #[serde(rename = "application-args", skip_serializing_if = "Option::is_none")]
    pub application_args: Option<Vec<String>>,
    /// \\[apid\\] ID of the application being configured or empty if creating.
    #[serde(rename = "application-id")]
    pub application_id: u64,
    /// \\[apap\\] Logic executed for every application transaction, except when on-completion is set to \"clear\". It can read and write global state for the application, as well as account-specific local state. Approval programs may reject the transaction.
    #[serde(rename = "approval-program", skip_serializing_if = "Option::is_none")]
    pub approval_program: Option<Bytes>,
    /// \\[apsu\\] Logic executed for application transactions with on-completion set to \"clear\". It can read and write global state for the application, as well as account-specific local state. Clear state programs cannot reject the transaction.
    #[serde(
        rename = "clear-state-program",
        skip_serializing_if = "Option::is_none"
    )]
    pub clear_state_program: Option<Bytes>,
    /// \\[epp\\] specifies the additional app program len requested in pages.
    #[serde(
        rename = "extra-program-pages",
        skip_serializing_if = "Option::is_none"
    )]
    pub extra_program_pages: Option<u64>,
    /// \\[apfa\\] Lists the applications in addition to the application-id whose global states may be accessed by this application's approval-program and clear-state-program. The access is read-only.
    #[serde(rename = "foreign-apps", skip_serializing_if = "Option::is_none")]
    pub foreign_apps: Option<Vec<u64>>,
    /// \\[apas\\] lists the assets whose parameters may be accessed by this application's ApprovalProgram and ClearStateProgram. The access is read-only.
    #[serde(rename = "foreign-assets", skip_serializing_if = "Option::is_none")]
    pub foreign_assets: Option<Vec<u64>>,
    #[serde(
        rename = "global-state-schema",
        skip_serializing_if = "Option::is_none"
    )]
    pub global_state_schema: Option<Box<crate::models::StateSchema>>,
    #[serde(rename = "local-state-schema", skip_serializing_if = "Option::is_none")]
    pub local_state_schema: Option<Box<crate::models::StateSchema>>,
    #[serde(rename = "on-completion")]
    pub on_completion: crate::models::OnCompletion,
}

impl TransactionApplication {
    /// Fields for application transactions.  Definition: data/transactions/application.go : ApplicationCallTxnFields
    pub fn new(
        application_id: u64,
        on_completion: crate::models::OnCompletion,
    ) -> TransactionApplication {
        TransactionApplication {
            accounts: None,
            application_args: None,
            application_id,
            approval_program: None,
            clear_state_program: None,
            extra_program_pages: None,
            foreign_apps: None,
            foreign_assets: None,
            global_state_schema: None,
            local_state_schema: None,
            on_completion,
        }
    }
}