#[repr(C)]pub struct ConfidentialTransferAccount {Show 13 fields
pub approved: PodBool,
pub encryption_pubkey: EncryptionPubkey,
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,
pub withheld_amount: EncryptedWithheldAmount,
}
Expand description
Confidential account state
Fields§
§approved: PodBool
true
if this account has been approved for use. All confidential transfer operations for
the account will fail until approval is granted.
encryption_pubkey: EncryptionPubkey
The public key associated with ElGamal encryption
pending_balance_lo: EncryptedBalance
The low 16 bits of the pending balance (encrypted by encryption_pubkey
)
pending_balance_hi: EncryptedBalance
The high 48 bits of the pending balance (encrypted by encryption_pubkey
)
available_balance: EncryptedBalance
The available balance (encrypted by encrypiton_pubkey
)
decryptable_available_balance: DecryptableBalance
The decryptable available balance
allow_confidential_credits: PodBool
If false
, the extended account rejects any incoming confidential transfers
allow_non_confidential_credits: PodBool
If false
, the base account rejects any incoming transfers
pending_balance_credit_counter: PodU64
The total number of Deposit
and Transfer
instructions that have credited
pending_balance
maximum_pending_balance_credit_counter: PodU64
The maximum number of Deposit
and Transfer
instructions that can credit
pending_balance
before the ApplyPendingBalance
instruction is executed
expected_pending_balance_credit_counter: PodU64
The expected_pending_balance_credit_counter
value that was included in the last
ApplyPendingBalance
instruction
actual_pending_balance_credit_counter: PodU64
The actual pending_balance_credit_counter
when the last ApplyPendingBalance
instruction
was executed
withheld_amount: EncryptedWithheldAmount
The withheld amount of fees. This will always be zero if fees are never enabled.
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 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
source§impl PartialEq<ConfidentialTransferAccount> for ConfidentialTransferAccount
impl PartialEq<ConfidentialTransferAccount> for ConfidentialTransferAccount
source§fn eq(&self, other: &ConfidentialTransferAccount) -> bool
fn eq(&self, other: &ConfidentialTransferAccount) -> bool
self
and other
values to be equal, and is used
by ==
.impl Copy for ConfidentialTransferAccount
impl Pod for ConfidentialTransferAccount
impl StructuralPartialEq for ConfidentialTransferAccount
Auto Trait Implementations§
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> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere T: AnyBitPattern,
§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
.