#[repr(C)]pub struct ConfidentialTransferAccount {
pub approved: PodBool,
pub elgamal_pubkey: PodElGamalPubkey,
pub pending_balance_lo: EncryptedBalance,
pub pending_balance_hi: EncryptedBalance,
pub available_balance: EncryptedBalance,
pub decryptable_available_balance: DecryptableBalance,
pub allow_confidential_credits: PodBool,
pub allow_non_confidential_credits: PodBool,
pub pending_balance_credit_counter: PodU64,
pub maximum_pending_balance_credit_counter: PodU64,
pub expected_pending_balance_credit_counter: PodU64,
pub actual_pending_balance_credit_counter: PodU64,
}Expand description
Confidential account state
Fields§
§approved: PodBooltrue if this account has been approved for use. All confidential
transfer operations for the account will fail until approval is
granted.
elgamal_pubkey: PodElGamalPubkeyThe public key associated with ElGamal encryption
pending_balance_lo: EncryptedBalanceThe low 16 bits of the pending balance (encrypted by elgamal_pubkey)
pending_balance_hi: EncryptedBalanceThe high 32 bits of the pending balance (encrypted by elgamal_pubkey)
available_balance: EncryptedBalanceThe available balance (encrypted by encryption_pubkey)
decryptable_available_balance: DecryptableBalanceThe decryptable available balance
allow_confidential_credits: PodBoolIf false, the extended account rejects any incoming confidential
transfers
allow_non_confidential_credits: PodBoolIf false, the base account rejects any incoming transfers
pending_balance_credit_counter: PodU64The total number of Deposit and Transfer instructions that have
credited pending_balance
maximum_pending_balance_credit_counter: PodU64The maximum number of Deposit and Transfer instructions that can
credit pending_balance before the ApplyPendingBalance
instruction is executed
expected_pending_balance_credit_counter: PodU64The expected_pending_balance_credit_counter value that was included in
the last ApplyPendingBalance instruction
actual_pending_balance_credit_counter: PodU64The actual pending_balance_credit_counter when the last
ApplyPendingBalance instruction was executed
Implementations§
Source§impl ConfidentialTransferAccount
impl ConfidentialTransferAccount
Sourcepub fn approved(&self) -> ProgramResult
pub fn approved(&self) -> ProgramResult
Check if a ConfidentialTransferAccount has been approved for use.
Sourcepub fn closable(&self) -> ProgramResult
pub fn closable(&self) -> ProgramResult
Check if a ConfidentialTransferAccount is in a closable state.
Sourcepub fn non_confidential_transfer_allowed(&self) -> ProgramResult
pub fn non_confidential_transfer_allowed(&self) -> ProgramResult
Check if a base account of a ConfidentialTransferAccount accepts
non-confidential transfers.
Sourcepub fn valid_as_source(&self) -> ProgramResult
pub fn valid_as_source(&self) -> ProgramResult
Checks if a ConfidentialTransferAccount is configured to send funds.
Sourcepub fn valid_as_destination(&self) -> ProgramResult
pub fn valid_as_destination(&self) -> ProgramResult
Checks if a confidential extension is configured to receive funds.
A destination account can receive funds if the following conditions are satisfied:
- The account is approved by the confidential transfer mint authority
- The account is not disabled by the account owner
- The number of credits into the account has not reached the maximum credit counter
Sourcepub fn increment_pending_balance_credit_counter(&mut self) -> ProgramResult
pub fn increment_pending_balance_credit_counter(&mut self) -> ProgramResult
Increments a confidential extension pending balance credit counter.
Trait Implementations§
Source§impl Clone for ConfidentialTransferAccount
impl Clone for ConfidentialTransferAccount
Source§fn clone(&self) -> ConfidentialTransferAccount
fn clone(&self) -> ConfidentialTransferAccount
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConfidentialTransferAccount
impl Debug for ConfidentialTransferAccount
Source§impl Default for ConfidentialTransferAccount
impl Default for ConfidentialTransferAccount
Source§fn default() -> ConfidentialTransferAccount
fn default() -> ConfidentialTransferAccount
Source§impl Extension for ConfidentialTransferAccount
impl Extension for ConfidentialTransferAccount
Source§const TYPE: ExtensionType = ExtensionType::ConfidentialTransferAccount
const TYPE: ExtensionType = ExtensionType::ConfidentialTransferAccount
impl Copy for ConfidentialTransferAccount
impl Pod for ConfidentialTransferAccount
impl StructuralPartialEq for ConfidentialTransferAccount
Auto Trait Implementations§
impl Freeze for ConfidentialTransferAccount
impl RefUnwindSafe for ConfidentialTransferAccount
impl Send for ConfidentialTransferAccount
impl Sync for ConfidentialTransferAccount
impl Unpin for ConfidentialTransferAccount
impl UnwindSafe for ConfidentialTransferAccount
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
Source§type Bits = T
type Bits = T
Self must have the same layout as the specified Bits except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern.Source§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
bits
as &Self.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more