Struct spl_token_2022::extension::confidential_transfer::instruction::withdraw::WithdrawData
source · [−]#[repr(C)]pub struct WithdrawData {
pub pubkey: ElGamalPubkey,
pub final_ciphertext: ElGamalCiphertext,
pub proof: WithdrawProof,
}
Expand description
This struct includes the cryptographic proof and the account data information needed to verify the proof
- The pre-instruction should call WithdrawData::verify_proof(&self)
- The actual program should check that
current_ct
is consistent with what is currently stored in the confidential token account TODO: update this statement
Fields
pubkey: ElGamalPubkey
The source account ElGamal pubkey
final_ciphertext: ElGamalCiphertext
The source account available balance after the withdraw (encrypted by
source_pk
proof: WithdrawProof
Range proof
Implementations
sourceimpl WithdrawData
impl WithdrawData
pub fn new(
amount: u64,
keypair: &ElGamalKeypair,
current_balance: u64,
current_ciphertext: &ElGamalCiphertext
) -> Result<WithdrawData, ProofError>
Trait Implementations
sourceimpl Clone for WithdrawData
impl Clone for WithdrawData
sourcefn clone(&self) -> WithdrawData
fn clone(&self) -> WithdrawData
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 WithdrawData
impl Verifiable for WithdrawData
fn verify(&self) -> Result<(), ProofError>
impl Copy for WithdrawData
impl Pod for WithdrawData
Auto Trait Implementations
impl RefUnwindSafe for WithdrawData
impl Send for WithdrawData
impl Sync for WithdrawData
impl Unpin for WithdrawData
impl UnwindSafe for WithdrawData
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)
🔬 This is a nightly-only experimental API. (
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more