hedera_rust_client/
token_revoke_kyc_transaction.rs1use crate::entity_id::validate_option_id_checksum;
2
3use crate::transaction::Transaction;
4use crate::AccountId;
5use crate::Client;
6use crate::Hbar;
7use crate::HederaError;
8use crate::TokenId;
9use hedera_rust_client_derive::{TransactionExecute, TransactionProto, TransactionSchedule};
10
11#[derive(TransactionSchedule, TransactionExecute, Debug, Clone, PartialEq)]
12#[hedera_rust_client_derive(service(
13 method_service_name = "token",
14 method_service_fn = "revoke_kyc_from_token_account"
15))]
16pub struct TokenRevokeKycTransaction {
17 transaction: Transaction,
18 services: Proto,
19}
20
21impl TokenRevokeKycTransaction {
22 pub fn new() -> TokenRevokeKycTransaction {
23 let transaction = Transaction::with_max_transaction_fee(Hbar::new(30.0));
24 let services = Proto::new();
25 TokenRevokeKycTransaction {
26 transaction,
27 services,
28 }
29 }
30
31 fn validate_network_on_ids(&self, client: &Client) -> Result<(), HederaError> {
32 validate_option_id_checksum(&self.services.token, client)?;
33 validate_option_id_checksum(&self.services.account, client)?;
34 Ok(())
35 }
36
37 gen_transaction_token_fns!();
39
40 gen_transaction_account_fns!();
42}
43
44#[derive(Debug, Clone, PartialEq, TransactionProto)]
45#[hedera_rust_client_derive(proto(
46 proto_enum = "TokenRevokeKyc",
47 proto_type = "TokenRevokeKycTransactionBody"
48))]
49struct Proto {
50 #[hedera_rust_client_derive(to_option_proto)]
51 pub token: Option<TokenId>,
52 #[hedera_rust_client_derive(to_option_proto)]
53 pub account: Option<AccountId>,
54}
55
56impl Proto {
57 pub fn new() -> Self {
58 Proto {
59 token: None,
60 account: None,
61 }
62 }
63}