algokit_transact/transactions/
asset_freeze.rsuse crate::Transaction;
use crate::address::Address;
use crate::transactions::common::TransactionHeader;
use crate::utils::{is_zero, is_zero_addr};
use derive_builder::Builder;
use serde::{Deserialize, Serialize};
use serde_with::{serde_as, skip_serializing_none};
#[serde_as]
#[skip_serializing_none]
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Builder)]
#[builder(
name = "AssetFreezeTransactionBuilder",
setter(strip_option),
build_fn(name = "build_fields")
)]
pub struct AssetFreezeTransactionFields {
#[serde(flatten)]
pub header: TransactionHeader,
#[serde(rename = "faid")]
#[serde(skip_serializing_if = "is_zero")]
#[serde(default)]
pub asset_id: u64,
#[serde(rename = "fadd")]
#[serde(skip_serializing_if = "is_zero_addr")]
#[serde(default)]
pub freeze_target: Address,
#[serde(rename = "afrz")]
#[serde(default)]
#[serde(skip_serializing_if = "std::ops::Not::not")]
#[builder(default)]
pub frozen: bool,
}
impl AssetFreezeTransactionBuilder {
pub fn build(&self) -> Result<Transaction, AssetFreezeTransactionBuilderError> {
self.build_fields().map(Transaction::AssetFreeze)
}
}