Struct spl_token_2022::extension::confidential_transfer::ciphertext_extraction::TransferWithFeeProofContextInfo
source · pub struct TransferWithFeeProofContextInfo {
pub ciphertext_lo: TransferAmountCiphertext,
pub ciphertext_hi: TransferAmountCiphertext,
pub transfer_with_fee_pubkeys: TransferWithFeePubkeysInfo,
pub new_source_ciphertext: ElGamalCiphertext,
pub fee_ciphertext_lo: EncryptedFee,
pub fee_ciphertext_hi: EncryptedFee,
}
Expand description
The proof context information needed to process a [Transfer] instruction with fee.
Fields§
§ciphertext_lo: TransferAmountCiphertext
Group encryption of the low 16 bits of the transfer amount
ciphertext_hi: TransferAmountCiphertext
Group encryption of the high 48 bits of the transfer amount
transfer_with_fee_pubkeys: TransferWithFeePubkeysInfo
The public encryption keys associated with the transfer: source, dest, auditor, and withdraw withheld authority
new_source_ciphertext: ElGamalCiphertext
The final spendable ciphertext after the transfer,
fee_ciphertext_lo: EncryptedFee
The transfer fee encryption of the low 16 bits of the transfer fee amount
fee_ciphertext_hi: EncryptedFee
The transfer fee encryption of the hi 32 bits of the transfer fee amount
Implementations§
source§impl TransferWithFeeProofContextInfo
impl TransferWithFeeProofContextInfo
sourcepub fn verify_and_extract(
equality_proof_context: &CiphertextCommitmentEqualityProofContext,
transfer_amount_ciphertext_validity_proof_context: &BatchedGroupedCiphertext2HandlesValidityProofContext,
fee_sigma_proof_context: &FeeSigmaProofContext,
fee_ciphertext_validity_proof_context: &BatchedGroupedCiphertext2HandlesValidityProofContext,
range_proof_context: &BatchedRangeProofContext,
source_decrypt_handles: &SourceDecryptHandles,
fee_parameters: &TransferFee,
) -> Result<Self, ProgramError>
pub fn verify_and_extract( equality_proof_context: &CiphertextCommitmentEqualityProofContext, transfer_amount_ciphertext_validity_proof_context: &BatchedGroupedCiphertext2HandlesValidityProofContext, fee_sigma_proof_context: &FeeSigmaProofContext, fee_ciphertext_validity_proof_context: &BatchedGroupedCiphertext2HandlesValidityProofContext, range_proof_context: &BatchedRangeProofContext, source_decrypt_handles: &SourceDecryptHandles, fee_parameters: &TransferFee, ) -> Result<Self, ProgramError>
Create a transfer proof context information needed to process a [Transfer] instruction from split proof contexts after verifying their consistency.
Trait Implementations§
source§impl From<TransferWithFeeProofContext> for TransferWithFeeProofContextInfo
impl From<TransferWithFeeProofContext> for TransferWithFeeProofContextInfo
source§fn from(context: TransferWithFeeProofContext) -> Self
fn from(context: TransferWithFeeProofContext) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for TransferWithFeeProofContextInfo
impl RefUnwindSafe for TransferWithFeeProofContextInfo
impl Send for TransferWithFeeProofContextInfo
impl Sync for TransferWithFeeProofContextInfo
impl Unpin for TransferWithFeeProofContextInfo
impl UnwindSafe for TransferWithFeeProofContextInfo
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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