#[repr(u8)]pub enum ConfidentialMintBurnInstruction {
InitializeMint = 0,
RotateSupplyElGamalPubkey = 1,
UpdateDecryptableSupply = 2,
Mint = 3,
Burn = 4,
}
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
Accounts expected by this instruction:
- Single authority
[writable]
The SPL Token mint.[]
Instructions sysvar ifCiphertextCiphertextEquality
is included in the same transaction or context state account ifCiphertextCiphertextEquality
is pre-verified into a context state account.[signer]
Confidential mint authority.
- Multisignature authority
[writable]
The SPL Token mint.[]
Instructions sysvar ifCiphertextCiphertextEquality
is included in the same transaction or context state account ifCiphertextCiphertextEquality
is 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.[]
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_proof
instructions are included in the same transaction.[]
(Optional) The context state account containing the pre-verifiedVerifyCiphertextCommitmentEquality
proof[]
(Optional) The context state account containing the pre-verifiedVerifyBatchedGroupedCiphertext3HandlesValidity
proof[]
(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_proof
instructions are included in the same transaction.[]
(Optional) The context state account containing the pre-verifiedVerifyCiphertextCommitmentEquality
proof[]
(Optional) The context state account containing the pre-verifiedVerifyBatchedGroupedCiphertext3HandlesValidity
proof[]
(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.[]
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_proof
instructions are included in the same transaction.[]
(Optional) The context state account containing the pre-verifiedVerifyCiphertextCommitmentEquality
proof[]
(Optional) The context state account containing the pre-verifiedVerifyBatchedGroupedCiphertext3HandlesValidity
proof[]
(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_proof
instructions are included in the same transaction.[]
(Optional) The context state account containing the pre-verifiedVerifyCiphertextCommitmentEquality
proof[]
(Optional) The context state account containing the pre-verifiedVerifyBatchedGroupedCiphertext3HandlesValidity
proof[]
(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
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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