substrate_stellar_sdk/xdr/impls/operations/
revoke_sponsorship.rs

1use crate::{
2    types::{OperationBody, RevokeSponsorshipOp, RevokeSponsorshipOpSigner},
3    IntoPublicKey, LedgerKey, Operation, SignerKey, StellarSdkError,
4};
5
6impl Operation {
7    pub fn new_revoke_sponsorship_ledger_entry(ledger_key: LedgerKey) -> Result<Operation, StellarSdkError> {
8        Ok(Operation {
9            source_account: None,
10            body: OperationBody::RevokeSponsorship(RevokeSponsorshipOp::RevokeSponsorshipLedgerEntry(ledger_key)),
11        })
12    }
13
14    pub fn new_revoke_sponsorship_signer<T: IntoPublicKey>(
15        account_id: T,
16        signer_key: SignerKey,
17    ) -> Result<Operation, StellarSdkError> {
18        Ok(Operation {
19            source_account: None,
20            body: OperationBody::RevokeSponsorship(RevokeSponsorshipOp::RevokeSponsorshipSigner(
21                RevokeSponsorshipOpSigner { account_id: account_id.into_public_key()?, signer_key },
22            )),
23        })
24    }
25}