Struct spl_token_2022::extension::confidential_transfer::instruction::TransferWithFeeData
source · [−]#[repr(C)]pub struct TransferWithFeeData {
pub ciphertext_lo: TransferAmountEncryption,
pub ciphertext_hi: TransferAmountEncryption,
pub transfer_with_fee_pubkeys: TransferWithFeePubkeys,
pub ciphertext_new_source: ElGamalCiphertext,
pub ciphertext_fee: FeeEncryption,
pub fee_parameters: FeeParameters,
pub proof: TransferWithFeeProof,
}
Fields
ciphertext_lo: TransferAmountEncryption
Group encryption of the low 32 bites of the transfer amount
ciphertext_hi: TransferAmountEncryption
Group encryption of the high 32 bits of the transfer amount
transfer_with_fee_pubkeys: TransferWithFeePubkeys
The public encryption keys associated with the transfer: source, dest, and auditor
ciphertext_new_source: ElGamalCiphertext
The final spendable ciphertext after the transfer,
ciphertext_fee: FeeEncryption
fee_parameters: FeeParameters
proof: TransferWithFeeProof
Implementations
sourceimpl TransferWithFeeData
impl TransferWithFeeData
pub fn new(
transfer_amount: u64,
(u64, &ElGamalCiphertext),
keypair_source: &ElGamalKeypair,
(&ElGamalPubkey, &ElGamalPubkey),
fee_parameters: FeeParameters,
pubkey_withdraw_withheld_authority: &ElGamalPubkey
) -> Result<TransferWithFeeData, ProofError>
sourcepub fn decrypt_amount(
&self,
role: Role,
sk: &ElGamalSecretKey
) -> Result<u64, ProofError>
pub fn decrypt_amount(
&self,
role: Role,
sk: &ElGamalSecretKey
) -> Result<u64, ProofError>
Decrypts transfer amount from transfer-with-fee data
TODO: This function should run in constant time. Use subtle::Choice
for the if statement
and make sure that the function does not terminate prematurely due to errors
TODO: Define specific error type for decryption error
Trait Implementations
sourceimpl Clone for TransferWithFeeData
impl Clone for TransferWithFeeData
sourcefn clone(&self) -> TransferWithFeeData
fn clone(&self) -> TransferWithFeeData
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Verifiable for TransferWithFeeData
impl Verifiable for TransferWithFeeData
fn verify(&self) -> Result<(), ProofError>
impl Copy for TransferWithFeeData
impl Pod for TransferWithFeeData
Auto Trait Implementations
impl RefUnwindSafe for TransferWithFeeData
impl Send for TransferWithFeeData
impl Sync for TransferWithFeeData
impl Unpin for TransferWithFeeData
impl UnwindSafe for TransferWithFeeData
Blanket Implementations
impl<T> AbiExample for T
impl<T> AbiExample for T
default fn example() -> T
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more