#[repr(u8)]pub enum ConfidentialMintBurnInstruction {
InitializeMint = 0,
RotateSupplyElGamalPubkey = 1,
UpdateDecryptableSupply = 2,
Mint = 3,
Burn = 4,
ApplyPendingBurn = 5,
}Expand description
Confidential Transfer extension instructions
Variants§
InitializeMint = 0
Initializes confidential mints and burns for a mint.
The ConfidentialMintBurnInstruction::InitializeMint instruction
requires no signers and MUST be included within the same Transaction
as TokenInstruction::InitializeMint. Otherwise another party can
initialize the configuration.
The instruction fails if the TokenInstruction::InitializeMint
instruction has already executed for the mint.
Accounts expected by this instruction:
[writable]The SPL Token mint.
Data expected by this instruction:
InitializeMintData
RotateSupplyElGamalPubkey = 1
Rotates the ElGamal pubkey used to encrypt confidential supply
The pending burn amount must be zero in order for this instruction to be processed successfully.
Accounts expected by this instruction:
- Single authority
[writable]The SPL Token mint.[]Instructions sysvar ifCiphertextCiphertextEqualityis included in the same transaction or context state account ifCiphertextCiphertextEqualityis pre-verified into a context state account.[signer]Confidential mint authority.
- Multisignature authority
[writable]The SPL Token mint.[]Instructions sysvar ifCiphertextCiphertextEqualityis included in the same transaction or context state account ifCiphertextCiphertextEqualityis pre-verified into a context state account.[]The multisig authority account owner.- ..
[signer]Required M signer accounts for the SPL Token Multisig
Data expected by this instruction:
RotateSupplyElGamalPubkeyData
UpdateDecryptableSupply = 2
Updates the decryptable supply of the mint
Accounts expected by this instruction:
- Single authority
[writable]The SPL Token mint.[signer]Confidential mint authority.
- Multisignature authority
[writable]The SPL Token mint.[]The multisig authority account owner.- ..
[signer]Required M signer accounts for the SPL Token Multisig
Data expected by this instruction:
UpdateDecryptableSupplyData
Mint = 3
Mints tokens to confidential balance
Fails if the destination account is frozen.
Accounts expected by this instruction:
- Single authority
[writable]The SPL Token account.[writable]The SPL Token mint.[](Optional) Instructions sysvar if at least one of thezk_elgamal_proofinstructions are included in the same transaction.[](Optional) The context state account containing the pre-verifiedVerifyCiphertextCommitmentEqualityproof[](Optional) The context state account containing the pre-verifiedVerifyBatchedGroupedCiphertext3HandlesValidityproof[](Optional) The context state account containing the pre-verifiedVerifyBatchedRangeProofU128[signer]The single account owner.
- Multisignature authority
[writable]The SPL Token mint.[]The SPL Token mint.[writable]if the mint has a non-zero supply elgamal-pubkey[](Optional) Instructions sysvar if at least one of thezk_elgamal_proofinstructions are included in the same transaction.[](Optional) The context state account containing the pre-verifiedVerifyCiphertextCommitmentEqualityproof[](Optional) The context state account containing the pre-verifiedVerifyBatchedGroupedCiphertext3HandlesValidityproof[](Optional) The context state account containing the pre-verifiedVerifyBatchedRangeProofU128[]The multisig account owner.- ..
[signer]Required M signer accounts for the SPL Token Multisig
Data expected by this instruction:
MintInstructionData
Burn = 4
Burn tokens from confidential balance
Fails if the destination account is frozen.
Accounts expected by this instruction:
- Single authority
[writable]The SPL Token account.[writable]The SPL Token mint.[](Optional) Instructions sysvar if at least one of thezk_elgamal_proofinstructions are included in the same transaction.[](Optional) The context state account containing the pre-verifiedVerifyCiphertextCommitmentEqualityproof[](Optional) The context state account containing the pre-verifiedVerifyBatchedGroupedCiphertext3HandlesValidityproof[](Optional) The context state account containing the pre-verifiedVerifyBatchedRangeProofU128[signer]The single account owner.
- Multisignature authority
[writable]The SPL Token mint.[]The SPL Token mint.[writable]if the mint has a non-zero supply elgamal-pubkey[](Optional) Instructions sysvar if at least one of thezk_elgamal_proofinstructions are included in the same transaction.[](Optional) The context state account containing the pre-verifiedVerifyCiphertextCommitmentEqualityproof[](Optional) The context state account containing the pre-verifiedVerifyBatchedGroupedCiphertext3HandlesValidityproof[](Optional) The context state account containing the pre-verifiedVerifyBatchedRangeProofU128[]The multisig account owner.- ..
[signer]Required M signer accounts for the SPL Token Multisig
Data expected by this instruction:
BurnInstructionData
ApplyPendingBurn = 5
Applies the pending burn amount to the confidential supply
- Single authority
[writable]The SPL token mint.[signer]The single mint authority.
- Multisignature authority
[writable]The SPL token mint.[]The multisig account owner.- ..
[signer]Required M signer accounts for the SPL Token Multisig account.
Trait Implementations§
Source§impl Clone for ConfidentialMintBurnInstruction
impl Clone for ConfidentialMintBurnInstruction
Source§fn clone(&self) -> ConfidentialMintBurnInstruction
fn clone(&self) -> ConfidentialMintBurnInstruction
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl From<ConfidentialMintBurnInstruction> for u8
impl From<ConfidentialMintBurnInstruction> for u8
Source§fn from(enum_value: ConfidentialMintBurnInstruction) -> Self
fn from(enum_value: ConfidentialMintBurnInstruction) -> Self
Source§impl TryFrom<u8> for ConfidentialMintBurnInstruction
impl TryFrom<u8> for ConfidentialMintBurnInstruction
Source§type Error = TryFromPrimitiveError<ConfidentialMintBurnInstruction>
type Error = TryFromPrimitiveError<ConfidentialMintBurnInstruction>
Source§impl TryFromPrimitive for ConfidentialMintBurnInstruction
impl TryFromPrimitive for ConfidentialMintBurnInstruction
const NAME: &'static str = "ConfidentialMintBurnInstruction"
type Primitive = u8
type Error = TryFromPrimitiveError<ConfidentialMintBurnInstruction>
fn try_from_primitive( number: Self::Primitive, ) -> Result<Self, TryFromPrimitiveError<Self>>
impl Copy for ConfidentialMintBurnInstruction
Auto Trait Implementations§
impl Freeze for ConfidentialMintBurnInstruction
impl RefUnwindSafe for ConfidentialMintBurnInstruction
impl Send for ConfidentialMintBurnInstruction
impl Sync for ConfidentialMintBurnInstruction
impl Unpin for ConfidentialMintBurnInstruction
impl UnwindSafe for ConfidentialMintBurnInstruction
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> 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